当前位置: 首页 > 科技观察

漫画:什么是Linux管道

时间:2023-03-23 11:38:12 科技观察

后记:这篇小文主要讲一下Linux管道的工作原理。管道是Linux中非常重要的通信方式。它可以直接将一个程序的输出连接到另一个程序的输入,我们日常生活中使用的管道大多指的是无名管道,无名管道只能在有亲缘关系的进程之间使用,还有一种有名管道叫做namedpipe或fifo(先进先出),可以使用mkfifo()创建。实际上,管道是一个固定大小的缓冲区。使用此缓冲区也会导致问题,例如写入管道。发生这种情况时,默认情况下将阻止对管道的后续write()调用,等待读取一些数据以便为write()调用提供足够的空间来写入。读取过程也可能比写入过程更快。读取所有当前过程数据后,管道变空。发生这种情况时,后续的read()调用将默认阻塞,等待写入一些数据。【本文为专栏作家“刘欣”原创稿件,转载请通过作者微信获取授权公众号coderising】点此查看该作者更多好文