Linux下的管道編程技術(8)

發表于:2013-03-06來源:開源黃頁作者:天狼星點擊數: 標簽:linux
$ mkfifo /tmp/cmd_pipe 下面 用例 子說明如何給命名管道指定讀寫權限。這里我們先將前面建立的管道刪掉,然后重新建立管道,并指定管道的權限為0644,當然

$ mkfifo /tmp/cmd_pipe

  下面用例子說明如何給命名管道指定讀寫權限。這里我們先將前面建立的管道刪掉,然后重新建立管道,并指定管道的權限為0644,當然您也可以指定其他權限:

$ rm cmd_pipe
$ mkfifo -m 0644 /tmp/cmd_pipe

  上面的權限一經建立,就能夠在命令行行下通過此管道進行通信了。比如,可以在一個終端上,利用cat命令來讀取管道:

$ cat cmd_pipe

  當輸入該命令后,我們的進程就會被掛起,等待寫入程序打開此管道?,F在,在另一個終端上利用echo命令向這個命名管道寫入:

$ echo Hi > cmd_pipe

  這個命令結束后,要讀取該管道的程序(即cat)將被喚醒,然后結束。為醒目起見,這里列出完整的讀取方(也就是讀取管道的程序)輸入的命令和得到的結果:

$ cat cmd_pipe
Hi
$

  由此看來,命名管道不僅在C程序中非常有用,而且在腳本中作用也很大。當然,如果組合使用,效果也是很好的。

  除了mkfifo命令外,mknod命令也可以用來創建命名管道,其用法如下所示:

$ mknod cmd_pipe p

  該命令執行后,將在當前目錄下創建一個命名管道cmd_pipe,p用于指出建立的是命名管道。

  六、小結

  在這篇文章中,我們介紹了管道和命名管道的概念,詳細的說明了應用程序和命令行創建管道的方法,以及通過它們進行通信的I/O機制。然后,討論了如何利用dup和 dup2命令來進行輸入輸出重定向。我們希望本文能夠幫您更好的了解Linux下的管道技術。

原文轉自:http://yp.oss.org.cn/blog/show_resource.php?resource_id=598

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97