2012-05-26 64 views
-1

我正在寫一個C程序,我fork()在父文件中讀取文件並通過管道傳遞給子文件,然後在子文件中將文件從管道接收到我想要執行的程序,將文件重定向到由execv()執行的程序?

例如,如果我用doc.txt執行/ bin/less,我將在父文件中讀取doc.txt並傳遞給子代,然後使用從pipe的讀取端接收的字符串執行更少的操作。 除了execv()部分外,其他一切都可以。

我已閱讀execv()的手冊頁,但它並不能真正幫助在做這個......

任何幫助嗎?

+3

目前尚不清楚(至少對我而言)你在做什麼。介意發佈一些代碼? – cnicutar

回答

0

由於任何分叉子分享父母文件描述符,您可以簡單地將stdin重定向到一個文件描述符dup2()然後只是分叉和執行在你的子進程。

當子進程從標準輸入讀取數據時,它會從您打開的文件描述符(可能是您的doc.txt的描述符)中讀取數據。

相關問題