感觉上,有名管道就是一个文件交换的方法,只是加了一些阻塞处理。不过,这部分阻塞的设计不是用户程序中说了算的,而是内核处理的。
有名管道的创建,使用mkfifo。读写跟普通管道处理差不多,接下来做一个测试。
这是一个读管道的进程,同时负责创建有名管道。
这是一个写管道的进程。
接下来做编译:
接下来,先运行读,再运行写,看看效果。
没有运行写的时候,由于管道空的,进程阻塞。但是此时创建了一个文件:
接下来,运行写管道的进程。
从有名管道中堵到了来自写进程的时间信息。这里我的排版有点问题,需要改一下读的输出。修改后的效果:
这样的显示效果就好得多了。