1、命名管道相关信息介绍
不是很了解命名管道先看这个篇博客 http://blog.csdn.net/u011068702/article/details/55102379 linux c之命名管道简单使用
博客介绍了创建管道的方法,这里还需要介绍 open函数和调用阻塞
FIFO文件也可以使用open调用来打开,mkfifo函数只是创建一个FIFO文件,要使用命名管道还是将其打开。
但是有两点要注意,
1、就是程序不能以O_RDWR模式打开FIFO文件进行读写操作,因为如一个管道以读/写方式打开,进程就会读回自己的输出,同时我们通常使用FIFO只是为了单向 的数据传递,要注意是O_REWR,不是O_WRONLY
2、就是传递给open调用的是FIFO的路径名,而不是正常的文件。
open API
open(const char *path, O_RDONLY);//1 open(const char *path, O_RDONLY | O_NONBLOCK);//2 open(const char *path, O_WRONLY);//3 open(const char *path, O_WRONLY | O_NONBLOCK);//4
open调用的阻塞
open函数第二个参数中,选项O_NONBLOCK表示非阻塞,加上这个选项后,表示open调用是非阻塞的,如果没有这个选项,则表示op