漫画:什么是Linux管道

漫画:什么是Linux管道

漫画:什么是Linux管道

漫画:什么是Linux管道

后记:这篇小短文主要说了一下Linux管道的工作原理,管道是Linux中很重要的一种通信方式,它可以把一个程序的输出直接连接到另一个程序的输入,我们日常使用的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,还有一个有名字的管道,叫named pipe或者fifo(先进先出),用mkfifo()就可以创建。

实际上,管道是一个固定大小的buffer,使用这个buffer时也会带来问题,比如在写管道时可能变满,当这种情况发生时,随后对管道的write()调用将默认地被阻塞,等待某些数据被读取,以便腾出足够的空间供write()调用写。读取进程也可能工作得比写进程快。当所有当前进程数据已被读取时,管道变空。当这种情况发生时,一个随后的read()调用将默认地被阻塞,等待某些数据被写入。

眼尖的同学可能已经看出来了,文章的最后三幅图来源于《Unix环境高级编程》,它和《Unix网络编程》一样,都是值得放在案头,随时翻阅的好书。

你看到的漫画只是冰山一角,在公众号回复关键字“漫画”可以看到更多精彩文章

漫画:什么是Linux管道

漫画:什么是Linux管道

漫画:什么是Linux管道

漫画:什么是Linux管道

相关文章:

  • 2022-12-23
  • 2021-09-11
  • 2021-09-23
  • 2021-04-14
  • 2021-04-07
猜你喜欢
  • 2021-12-02
  • 2021-11-21
  • 2021-09-06
  • 2021-05-25
  • 2021-10-31
相关资源
相似解决方案