- 博客(19)
- 收藏
- 关注
转载 解决curses中文乱码问题
问题的解决方案也是我自己百度的,我把方法和觉得应该注意的地方写一下1、引入本地头文件 在main函数文件中添加#include 头文件 (用make的话放在myhead.h就可以)2、改变引入的curses头文件 将#include 或#include 改为#include 这时如果编译出错,显示没有ncursesw.h文件 ,则继续使用#include
2017-03-31 20:53:11 2208
转载 TCP/IP四层模型和OSI七层模型的概念
TCP/IP四层模型TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对应OSI的第四层)。 TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮
2017-03-25 23:52:22 261
转载 学习Linux的几点忠告
转载地址:http://wiki.ubuntu.org.cn/index.php?title=%E5%AD%A6%E4%B9%A0linux%E5%87%A0%E7%82%B9%E5%BF%A0%E5%91%8A&variant=zh-cn作者:王垠目录[隐藏]1 不要当“传教士”2 不要强迫自
2017-03-25 23:50:07 260
原创 条件变量经典实例
/*这是一个非常经典的多线程题目,题目大意如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个有多个缓冲区的缓冲池,生产者将它生产的产品放入一个缓冲区中,消费者可以从缓冲区中取走产品进行消费,所有生产者和消费者都是异步方式运行的,但它们必须保持同步,即不允许消费者到一个空的缓冲区中取产品,也不允许生产者向一个已经装满产品且尚未
2017-03-25 23:32:08 1245 1
原创 解决线程间对共享资源的竞争
进行多线程编程,因为无法知道哪个线程会在哪个时候对共享资源进行操作,因此让如何保护共享资源变得复杂,通过下面这些技术的使用,可以解决 线程之间对资源的竞争: 1 互斥量Mutex 2 信号灯Semaphore(不做介绍) 3 条件变量Conditio
2017-03-25 22:36:36 2430
转载 linux常用的时间函数
一、linux时间函数总结 写停车场系统时需要用到时间函数,就百度了下,下面是转载某位博主的内容,看不懂得程序,自己敲一下也就懂了: asctime, ctime, gmtime,localtime, gettimeofday, mktime, asctime_r, ctime_r, gmtime_r,localtime_r二、常用
2017-03-20 23:40:26 300
原创 多线程编程实例
有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD。初始都为空。现要让四个文件呈如下格式:A:1 2 3 4 1 2....B:2 3 4 1 2 3....C:3 4 1 2 3 4....D:4 1 2 3 4 1....程序:#inclu
2017-03-20 00:26:59 259
原创 多线程编程
使用多线程的理由:1,和进程相比,它是一种非常“节俭”的多任务操作方式.在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式2, 线程间方便的通信机制。对不同进程来说,它们具有独立的数据空间,要进行数据的传递只能通过进程间通信的方式进行,这种方式不仅费时,而且很不方便。线程则不
2017-03-20 00:18:58 232
原创 程序:进程间通信——有名管道实例
有名管道(命名管道)命名管道和无名管道基本相同,但也有不同点:无名管道只能由父子进程使用;但是通过命名管道,不相关的进程也能交换数据#include #include int mkfifo(const char * pathname, mode_t mode)pathname:FIFO文件名mode:属性(见文件操作章节)
2017-03-19 00:24:34 564
原创 程序:进程间通信——无名管道实例
无名管道由pipe()函数创建: int pipe(int filedis[2]); 当一个管道建立时,它会创建两个文件描述符:filedis[0] 用于读管道, filedis[1] 用于写管道(不固定,也可倒过来)通常先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程所创建的管道
2017-03-19 00:12:54 511
原创 进程控制编程
进程:进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元程序是放到磁盘的可执行文件,进程是程序执行的实例进程和程序的区别:进程是动态的,程序是静态的 进程是暂时的,程序是长久的 进程与程序的组成不同
2017-03-18 23:53:20 513
原创 字符,字符串输入示例程序;屏幕清除函数实例
注意:博主是在红帽中运行的程序,有时候程序编译运行后,窗口跳不出来,需要在refresh后面或前面加getchar();字符,字符串输入:#include#include#includeint main(){ char str[20]; char *pstr; initscr(); crmode(); printw("file
2017-03-15 23:00:50 464
转载 初识curses (简单常用的函数简介)
如果可以尽量看 《unix/linux下curses开发指南》这本书,更详细。initscr() 初始化为curses 模式,用来清除屏幕上所有的字符 endwin() 退出curses 模式refresh() 告诉curses系统将缓冲区的内容输出到屏幕上。move (int new_y, int new_x) 把逻辑光标的位置移动到指定的地点(行、列)
2017-03-15 22:46:37 2089
转载 linux下curses的安装
博主使用下面方法已经成功安装curses库是可以在linux终端中写出字符用户界面的一个库,现在较新的版本应该是ncurses库,现在已经很少有人再去使用他了,所以想拥有这个库并且在linux下写出自己用户界面的可以参考一下本博客,在网上搜了一下,所有的都是基于Ubuntu的安装方法,都是在联网方式下输入一句shell命令,但是我们如果装的是虚拟机不能联网怎么办,我现在提供
2017-03-14 14:26:14 1223 1
原创 库函数
c库函数是独立于操作平台的FILE *fopen (const char *filename, const char *mode)filename 打开的文件名 mode 打开模式函数原型 typedef stuct{ int cnt; (余下的字符数) char *ptr; (指向下一个操作位置) char *base; (缓冲区地
2017-03-09 21:11:49 398
转载 库函数与系统调用的区别
系统调用与库函数的区别Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调
2017-03-09 21:07:26 304
原创 库函数
c库函数是独立于操作平台的FILE *fopen (const char *filename, const char *mode)filename 打开的文件名 mode 打开模式函数原型 typedef stuct{ int cnt; (余下的字符数) char *ptr; (指向下一个操作位置) char *base; (缓冲区地
2017-03-09 00:19:06 283
转载 errno列表
perrno,strerror 是错误信息打印函数函数strerror返回一个错误消息字符串的指针,其内容是由实现定义的,字符串不能修改,但可以在后续调用strerror函数时覆盖。函数perror在标准错误输出流中打印下面的序列:参数字符串s、冒号、空格、包含errno中当前错误码的错误短消息和换行符。在标准C语言中,如果s是NULL指针或NULL字符的指针,则只打印错误短消
2017-03-08 23:57:44 1566
原创 系统调用及用户编程接口(API)
系统调用:用户通过操作系统提供的接口(API)获得内核提供的一些服务程序的运行空间逻辑上是分离的,分为内核空间和用户空间。用户进程通常情况下无法访问内核空间。所有的进程会在内核中有一个文件记录表,记录表是有限的。文件描述符是一个非负整数,是一个索引值,指向内核空间每个进程的记录表Linux一点哲学,一切皆为文件(包括输入输出设备);故标准输入STDIN_FILENO
2017-03-08 21:41:35 3887
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人