shell——mkfifo管道


轉自:http://blog.sina.com.cn/s/blog_605f5b4f0101azuc.html

創建命名管道的方法為:mkfifo pipe_name。

這樣就能創建一個命名的管道pipe_name。

運行命令並把輸出重定向到管道並扔后台(否則會hang住):cmd > pipe_name &

讀取管道內容:cat < pipe_name便可讀取管道中的內容。
 
tmp_fifofile="/tmp/$$.fifo"
mkfifo $tmp_fifofile      # 新建一個fifo類型的文件
exec 6<>$tmp_fifofile     
# 將fd6指向fifo類型,如果沒有這句,在向文件$tmp_fifofile或者&6寫入數據時,程序會被阻塞,直到有read讀出了管道中的數據位置,
而執行了上述之后,可以在程序運行期間不斷向fifo類型文件寫入數據而不會阻塞,並且數據會被保存下來以供read程序讀出。
for ((i=0;i<$thread;i++));do echo done >&6 # 事實上就是在fd6中放置了$thread個回車符

 

 


免責聲明!

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



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