摘要: 无名管道无名管道用于在在亲缘关系的进程间通信(父子进程或兄弟进程),它是一种半双工的工作模式。在父进程中创建无名管道后,又创建子进程,则父子进程中分别拥有独立的读端和写端。所以要把父进程的写端 fd[1]和子进程的读端 fd[0]关闭。这时,父子进程之间就建立起了一条“子进程写入父进程读”的通道。数据保存在无名管道中,而无名管道在内核中。无名管道、消息队列、信号量都位于内核,共享内在位于用户空间。#include<unistd.h>#include<string.h>#include<sys/types.h>#include<error.h>#i 阅读全文
posted @ 2011-01-23 17:21 高性能golang 阅读(522) 评论(0) 推荐(0) 编辑
摘要: _exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间, 并清除其在内核中的各种数据结构;exit()函数则在这些基础上作了一些包装, exit()函数在调用 exit 系统之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。wait 函数是用于使父进程(也就是调用 wait 的进程)阻塞,直到一个子进程结束或者该进程接到了一个指定的信号为止。如果该父进程没有子进程或者他的子进程已经结束, wait 则就会立即返回。waitpid 的作用和 wait 一样, 但它并不一定要等待第一个终止的子进程, 它还有若干选项, 如可提供一个非阻塞版本的 wait 功能,也能支持作业控制。 阅读全文
posted @ 2011-01-23 14:07 高性能golang 阅读(1072) 评论(0) 推荐(0) 编辑
摘要: 标准I/O操作都是基于流缓冲的,符合ANSIC标准I/O处理。全缓冲:填满缓存后才执行I/O操作。如malloc就是全缓冲。行缓冲:遇到换行符时执行I/O操作。如stdin和stdout。无缓冲:如stderr。下面介绍的函数全部包含在stdio.h头文件中。打开文件FILE *fopen(const char * path,const char * mode) //mode可以取r(读),w(写),a(追加)FILE *fdopen(int fd,const char * mode)FILE *freopen(const char *path,const char * mode,FILE . 阅读全文
posted @ 2011-01-23 11:36 高性能golang 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 代码#include<termios.h>structtermio{ unsignedshort c_iflag; //输入模式 unsignedshort c_oflag; //输出模式 unsignedshort c_cflag; //控制模式 unsignedshort c_lflag; //本地模式 unsignedchar c_line; //line discipline unsignedchar c_cc[NCC]; //control characters} 阅读全文
posted @ 2011-01-23 11:03 高性能golang 阅读(244) 评论(0) 推荐(0) 编辑