千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > linux管道命令錯(cuò)誤?

linux管道命令錯(cuò)誤?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-25 12:59:06 1698209946

Linux管道命令(pipe)

) 定義函數(shù): int pipe(int filedes[2]);3) 函數(shù)說(shuō)明: pipe()會(huì)建立管道,并將文件描述詞由參數(shù)filedes數(shù)組返回。filedes[0]為管道里的讀取端 filedes[1]則為管道的寫(xiě)入端。

簡(jiǎn)單來(lái)說(shuō)就是,一個(gè)命令的結(jié)果作為另外一個(gè)命令(結(jié)果)的輸入,管道是linux提供的一種常見(jiàn)的進(jìn)程通信工具,也是很多shell命令能夠靈活組合產(chǎn)生強(qiáng)大用途的一個(gè)重要工具。

管道:一個(gè)命令的輸出可以通過(guò)管道做為另一個(gè)命令的輸入。管道我們可以理解現(xiàn)實(shí)生活中的管子,管子的一頭塞東西進(jìn)去,另一頭取出來(lái),這里“ | ”的左右分為兩端,左端塞東西(寫(xiě)),右端取東西(讀)。

pipe就是一種半雙工的管道。其中,fd[1]用來(lái)向管道中寫(xiě)入數(shù)據(jù),而fd[0]在另一端用來(lái)讀出數(shù)據(jù)。如果現(xiàn)有兩個(gè)進(jìn)程要利用pipe進(jìn)行通信。此時(shí),就要保證只能有一個(gè)寫(xiě)入端和一個(gè)讀出端,即:fd[1]和fd[0]只能有一個(gè)。

UnixBench是一個(gè)類(lèi)unix系(Unix,BSD,Linux)統(tǒng)下的性能測(cè)試工具,一個(gè)開(kāi)源工具,被廣泛用與測(cè)試linux系統(tǒng)主機(jī)的性能。Unixbench的主要測(cè)試項(xiàng)目有:系統(tǒng)調(diào)用、讀寫(xiě)、進(jìn)程、圖形化測(cè)試、2D、3D、管道、運(yùn)算、C庫(kù)等系統(tǒng)基準(zhǔn)性能提供測(cè)試數(shù)據(jù)。

Linux系統(tǒng)中mkfifo創(chuàng)建管道后,調(diào)用open打開(kāi)失敗,不知道錯(cuò)在哪兒

1、errno是個(gè)全局變量,在errno.h頭文件中定義,用于保存錯(cuò)誤碼,方便根據(jù)錯(cuò)誤碼來(lái)查詢出錯(cuò)原因。這個(gè)mkfifo函數(shù)創(chuàng)建管道時(shí),如果有已存在的同名管道,就會(huì)將errno賦值為EEXIST。

2、或者,返回ENXIO錯(cuò)誤(當(dāng)前打開(kāi)操作沒(méi)有設(shè)置阻塞標(biāo)志)??傊褪且痪湓挘坏┰O(shè)置了阻塞標(biāo)志,調(diào)用mkfifo建立好之后,那么管道的兩端讀寫(xiě)必須分別打開(kāi),有任何一方未打開(kāi),則在調(diào)用open的時(shí)候就阻塞。

3、管道讀寫(xiě)規(guī)則:如果試圖從管道寫(xiě)端讀取數(shù)據(jù),或者向管道讀端寫(xiě)入數(shù)據(jù)都將導(dǎo)致錯(cuò)誤發(fā)生 當(dāng)沒(méi)有數(shù)據(jù)可讀時(shí),read調(diào)用就會(huì)阻塞,即進(jìn)程暫停執(zhí)行,一直等到有數(shù)據(jù)來(lái)到為止。

Linux中為什么這條不能使用管道符|來(lái)做

需要超級(jí)用戶權(quán)限的命令:某些需要超級(jí)用戶權(quán)限的命令(如 su)無(wú)法在管道中使用,因?yàn)楣艿赖膱?zhí)行者通常是普通用戶而不是超級(jí)用戶。

豎線‘|’ ,在linux中是作為管道符的,將‘|’前面命令的輸出作為|后面的輸入。

利用Linux所提供的管道符“|”將兩個(gè)命令隔開(kāi),管道符左邊命令的輸出就會(huì)作為管道符右邊命令的輸入。 連續(xù)使用管道意味著第一個(gè)命令的輸出會(huì)作為 第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,依此類(lèi)推。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
linux中rz命令安裝?

rz命令上傳文件在命令終端輸入rz回車(chē)后,就會(huì)出現(xiàn)文件選擇對(duì)話框,選擇需要上傳文件,一次可以指定多個(gè)文件,上傳到服務(wù)器的路徑為當(dāng)前執(zhí)行rz命...詳情>>

2023-10-25 15:14:41
linux地址查詢命令?

linux常用命令1、linux系統(tǒng)常用操作命令如下:ls:全拼list,功能是列出目錄的內(nèi)容及其內(nèi)容屬性信息。cd:全拼changedirectory,功能是從當(dāng)前工...詳情>>

2023-10-25 15:11:53
linux退出繼續(xù)命令?

linux怎么退出命令行1、先按ESC進(jìn)入Command模式,然后輸入“:wq”,回車(chē)就可以保存并退出了。2、首先連接相應(yīng)linux主機(jī),等待輸入shell指令。...詳情>>

2023-10-25 14:41:24
linux文件基礎(chǔ)命令?

linux必學(xué)的60個(gè)命令文件和目錄管理:ls:列出當(dāng)前目錄下的內(nèi)容。cd:進(jìn)入指定的目錄。pwd:顯示當(dāng)前所在目錄的完整路徑。mkdir:創(chuàng)建一個(gè)新目...詳情>>

2023-10-25 14:35:51
linux中的各種命令?

linux文件系統(tǒng)常用命令1、df命令:用于顯示文件系統(tǒng)的磁盤(pán)空間使用情況,包括已用空間、可用空間、文件系統(tǒng)類(lèi)型等。示例命令:df -h du命令:用...詳情>>

2023-10-25 14:21:51