命名管道
上一篇我们说到进程间通信的时候,对匿名管道进行了操作使用,这里我们队命名管道进行操作使用。在我们使用匿名管道的时候,是在fork之后,利用父子进程的关系,在代码中用if语句分流,然后让父子进程分别对匿名管道进行写入读取的操作,达到了父子进程间通信交流的目的。而如果是两个进程之间呢?并非父子进程,它们如何去通信?
这时候就要使用我们的命名管道了。在Linux操作系统下,一切皆文件。而且管道文件正是Linux平台下的一类文件。
命名管道的创建
命令行创建
我们创建命名管道可以用mkfifo
在命令行进行创建,同时命名管道也可以在代码中进行创建,类似于在代码中进行创建文件。
这里的p2就是我们利用mkfifo
创建了一个管道文件p2.
函数内创建
int mkfifo(const char* filename, mode_t mode)
这个函数参数,第一个为要创建的管道的名字,第二个为其权限。比如: