app开发者平台在数字化时代的重要性与发展趋势解析
1174
2022-11-23
Linux管道详解
文章目录
一、概念二、匿名管道三、命名管道
`3.1.特征``3.2.示例`
参考书籍:《Linux Shell核心编程指南》——丁明一
一、概念
管道是进程间通信的一种方式。
分为匿名管道和命名管道
二、匿名管道
这个最常用,使用|符号就可以创建一个匿名管道。 例如:
cat /etc/hosts | grep 127.0.0.1
匿名管道仅可以实现父进程与子进程之间的数据交换,要想实现任意两个无关的进程之间的通信,需要使用命名管道。
三、命名管道
命名管道也叫FIFO文件,即First In First Out,先进先出,先写入的数据被先读出来,后写入的数据被后读出来。
3.1.特征
FIFO文件由命令创建(mknod或mkfifo),可以在文件系统中直接看到写入管道的数据一旦被读取后,就不可以再重复读取进程往命名管道中写数据时,如果没有其他进程读取数据,则写进程会被阻塞进程尝试从命名管道中读取数据时,如果管道中没有数据,则读进程会被阻塞命名管道中的数据常驻内存,并不实际写入磁盘,读写效率会更高
3.2.示例
mkfifo pipe_file1 #创建命名管道mkfifo -m 600 pipe_file2 #创建命名管道,并设置权限
echo "hello" > pipe_file1 #写阻塞
cat pipe_file1
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~