- 3
- 0
- 约小于1千字
- 约 7页
- 2022-08-31 发布于北京
- 举报
北风网项目培训 LINUX 进程间通信程序设计-1 ( 2 )讲师:韩老师 (北风网 )管道读写管道用于不同进程间通信。通常先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程所创建的管道。 注意事项 必须在系统调用fork( )前调用pipe( ),否则子进程将不会继承文件描述符。 实例分析(演示) pipe_rw.c命名管道(FIFO)命名管道和无名管道基本相同,但也有不同点:无名管道只能由父子进程使用;但是通过命名管道,不相关的进程也能交换数据。 创建 #include sys/types.h #include sys/stat.h int mkfifo(const char * pathname, mode_t mode)vpathname:FIFO文件名vmode:属性(见文件操作章节) 一旦创建了一个FIFO,就可用open打开它,一 般的文件访问函数(close、read、write等) 都可用于FIFO。 操作 当打开FIFO时,非阻塞标志(O_NONBLOCK) 将对以后的读写产生如下影响: 1、没有使用O_NONBLOCK:访问要求无法满足时进程将阻塞。如试图读取空的FIFO,将导致进程阻塞。 2、使用O_NONBLOCK:访问要求无法满足时不阻塞,立刻出错返回,errno是ENXIO。
原创力文档

文档评论(0)