資料介紹
8.2.1 管道概述
本書在第2章中介紹“ps”的命令時提到過管道,當時指出了管道是Linux中一種很重要的通信方式,它是把一個程序的輸出直接連接到另一個程序的輸入,這里仍以第2章中的“ps –ef | grep ntp”為例,描述管道的通信過程,如圖8.2所示。
圖8.2 管道的通信過程
管道是Linux中進程間通信的一種方式。這里所說的管道主要指無名管道,它具有如下特點。
n 它只能用于具有親緣關系的進程之間的通信(也就是父子進程或者兄弟進程之間)。
n 它是一個半雙工的通信模式,具有固定的讀端和寫端。
n 管道也可以看成是一種特殊的文件,對于它的讀寫也可以使用普通的read()和write()等函數。但是它不是普通的文件,并不屬于其他任何文件系統,并且只存在于內核的內存空間中。
8.2.2 管道系統調用
1.管道創建與關閉說明
管道是基于文件描述符的通信方式,當一個管道建立時,它會創建兩個文件描述符fds[0]和fds[1],其中fds[0]固定用于讀管道,而fd[1]固定用于寫管道,如圖8.3所示,這樣就構成了一個半雙工的通道。
圖8.3 Linux中管道與文件描述符的關系
管道關閉時只需將這兩個文件描述符關閉即可,可使用普通的close()函數逐個關閉各個文件描述符。
注意當一個管道共享多對文件描述符時,若將其中的一對讀寫文件描述符都刪除,則該管道就失效。
2.管道創建函數
創建管道可以通過調用pipe()來實現,表8.1列出了pipe()函數的語法要點。
表8.1 pipe()函數語法要點
所需頭文件#include 《unistd.h》
函數原型int pipe(int fd[2])
函數傳入值fd[2]:管道的兩個文件描述符,之后就可以直接操作這兩個文件描述符
函數返回值成功:0
出錯:-1
本書在第2章中介紹“ps”的命令時提到過管道,當時指出了管道是Linux中一種很重要的通信方式,它是把一個程序的輸出直接連接到另一個程序的輸入,這里仍以第2章中的“ps –ef | grep ntp”為例,描述管道的通信過程,如圖8.2所示。
圖8.2 管道的通信過程
管道是Linux中進程間通信的一種方式。這里所說的管道主要指無名管道,它具有如下特點。
n 它只能用于具有親緣關系的進程之間的通信(也就是父子進程或者兄弟進程之間)。
n 它是一個半雙工的通信模式,具有固定的讀端和寫端。
n 管道也可以看成是一種特殊的文件,對于它的讀寫也可以使用普通的read()和write()等函數。但是它不是普通的文件,并不屬于其他任何文件系統,并且只存在于內核的內存空間中。
8.2.2 管道系統調用
1.管道創建與關閉說明
管道是基于文件描述符的通信方式,當一個管道建立時,它會創建兩個文件描述符fds[0]和fds[1],其中fds[0]固定用于讀管道,而fd[1]固定用于寫管道,如圖8.3所示,這樣就構成了一個半雙工的通道。
圖8.3 Linux中管道與文件描述符的關系
管道關閉時只需將這兩個文件描述符關閉即可,可使用普通的close()函數逐個關閉各個文件描述符。
注意當一個管道共享多對文件描述符時,若將其中的一對讀寫文件描述符都刪除,則該管道就失效。
2.管道創建函數
創建管道可以通過調用pipe()來實現,表8.1列出了pipe()函數的語法要點。
表8.1 pipe()函數語法要點
所需頭文件#include 《unistd.h》
函數原型int pipe(int fd[2])
函數傳入值fd[2]:管道的兩個文件描述符,之后就可以直接操作這兩個文件描述符
函數返回值成功:0
出錯:-1
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 石油化工行業管道專業用什么軟件 13次下載
- 談談嵌入式系統中多進程設計與進程通信 9次下載
- 嵌入式Linux進程 -進程間通信 9次下載
- 鴻蒙內核源碼分析:進程是內核的資源管理單元 22次下載
- TD-SCDMA無線通信技術的演變進程與其他技術比較和系統結構介紹 21次下載
- Linux系統管道和有名管道的通信機制解析 0次下載
- linux操作系統下的進程通信 0次下載
- 進程間通信之Linux下進程間通信概述 0次下載
- 進程間通信之管道通信實驗內容分析 1次下載
- 進程間通信之使用信號詳解 0次下載
- 進程間通信之共享內存 1次下載
- 通信電纜配線管道圖集 YD5062-98 106次下載
- 通信管道與通道工程設計規范 YD 5007—2003 26次下載
- 通信管道與通道工程設計規范 25次下載
- 通信管道設計規范 85次下載
- Linux下進程通信的方法 313次閱讀
- Linux管道和FIFO應用筆記 412次閱讀
- 闡述匿名管道和命名管道 823次閱讀
- 進程間通信的實現方式 593次閱讀
- Linux進程間通信方法之管道 1538次閱讀
- 鴻蒙內核源碼:進程是內核的資源管理單元 1258次閱讀
- 淺談進程之間的通信方式 2673次閱讀
- 管道設計條件的確定,管道布置應考慮的因素 1.1w次閱讀
- Linux進程管理:什么是進程?進程的生命周期 7375次閱讀
- Linux中的管道和命名管道介紹 3737次閱讀
- 什么是僵尸進程_Linux僵尸進程可以被“殺死”嗎? 4405次閱讀
- Linux進程的概念及進程通信的應用場景 6482次閱讀
- 基于linux的進程通信設計方案 457次閱讀
- Linux進程管理:什么是進程? 4266次閱讀
- 進程間與線程間的通信方式 8647次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 6基于FPGA的C8051F單片機開發板設計
- 0.70 MB | 2次下載 | 免費
- 751單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21548次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183278次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多