Linux 中的管道是什么?


管道(pipe)是進程間通信的一種實現方式。在 Linux 系統中,管道本質上是一種特殊的文件,它的主要用途是實現進程間的通信。文中演示所用環境為 Ubuntu 18.04 desktop。

管道的一個顯著特點是:創建一個管道后,會獲得兩個文件描述符,分別用於對管道進行讀取和寫入操作。通常將這兩個文件描述符稱為管道的讀取端和寫入端,從寫入端寫入管道的任何數據都可以從讀取端讀取。
對一個進程來說,管道的寫入和讀取操作與寫入和讀取一個普通文件沒有什么區別,只是在內核中通過這種機制來實現進程間的通信而已

cat file.txt | grep -v "dfd"

相當於在 cat 進程 和 grep 進程之間建立了一個管道,cat 負責向管道寫入 grep 負責從管道讀取,普通文件打開只返回一個文件描述符,而打開一個管道則返回兩個描述符,讀和寫,相當於普通文件是雙工的,管道是單共的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM