我非常新IPC編程C.我有一個很基本的問題,爲什麼很多的我們的C代碼使用DUP2作出標準輸出作爲寫頭和標準輸入爲已讀前往PIPE。是否有任何好處,comapred到整數型和使用該數組作爲輸入到管呼叫的陣列?爲什麼重定向到標準輸出和管道編程標準輸入如此普遍
0
A
回答
2
許多C程序編寫爲過濾器,其(默認)從標準輸入讀取和寫入到標準輸出。與管道的漏洞,並且支持從一個程序的輸出發送到另一個輸入的成語,管道與:
ls | wc -l
這就是爲什麼你經常結束與代碼連接管文件描述符標準輸入或標準輸出。如果你需要讓讀取程序或寫入,任意文件描述符,你必須提供控制參數,告訴他們該怎麼做。當然,現在在諸如Linux這樣的系統上使用/dev/fd
文件系統,這是可行的,但是這是最近的一項創新,當許多程序第一次寫入時,這種創新是不可用的。你可以得到幾乎相同的結果如上使用:
ls | wc -l /dev/fd/0
但wc
會在這種情況下呼應的文件名,而當沒有名字作爲第一個例子並不呼應的文件名。
+0
謝謝......它的解釋。非常基本,但我想念從我正在閱讀的頁面這個小信息:)謝謝。 –
相關問題
- 1. C:重定向標準輸入,標準輸出到管道
- 2. 重定向進程標準輸入和標準輸出到netcat
- 3. 重定向子進程的標準輸入和stdout到管道
- 4. 破折號重定向從標準輸入到標準輸出
- 5. 進程通信中的管道標準輸入/標準輸出。
- 6. 批重定向輸出標準錯誤到文件和管道輸出標準輸出到文件
- 7. 重定向標準輸出到管道寫入結束
- 8. 將子進程的標準輸出重定向到父進程標準輸入
- 9. 標準輸出重定向
- 10. 重定向標準輸出
- 11. 如何在啓動時重定向標準錯誤*不重定向標準輸入和標準輸出?
- 12. 重定向標準輸入
- 13. 重定向標準輸入
- 14. C:如何重定向命名管道標準輸入/輸出子進程的
- 15. 命名管道,chaning標準輸入,在標準輸出叉()
- 16. 將執行過程的標準輸入/標準輸出重定向到Perl中的管道
- 17. 如何重定向到標準輸出?
- 18. 從標準輸入和輸出讀取到標準輸出是什麼意思?
- 19. 用管道和叉子重定向標準輸出C
- 20. 如何重定向/標準輸出管道紅寶石
- 21. 標準輸出重定向到文件
- 22. ProcessBuilder重定向到標準輸出
- 23. 的Linux得到filecontent作爲標準輸入輸出管道
- 24. 試圖ffmpeg的二進制標準輸出重定向到NeroAacEnc標準輸入
- 25. 爲什麼記錄器輸出到標準輸出重定向到文件?
- 26. 如何標準輸入和輸出重定向與擊
- 27. 的Linux 3.0:與管道標準輸入執行子進程/標準輸出
- 28. gdb自動化 - 針對gdb的管道標準輸入和標準輸出
- 29. 標準錯誤重定向到標準輸出
- 30. Powershell將標準輸出重定向到標準錯誤
的主要原因是創建新的進程和執行其他應用程序時,因爲新的應用程序將不知道該管,但不知道標準輸入和輸出。 –
我明白你的觀點。所以我們大部分的程序都需要stdout並從stdin中取得I/P。所以,如果我管的程序[|]使用stdin和stdout作爲寫頭和讀的UNIX管道,然後目的服役傳遞了兩個不相干的代碼段之間的信息的頭部。謝謝。 –