2012-04-28 116 views
0

您好我目前正在嘗試打印命令行的某個部分時,當我運行我的程序。我現在運行我的程序如下如何打印命令行命令的一部分

zcat gcc | sim 

我試圖做到的是打印出一個單獨的文件在命令行中的「海灣合作委員會」的一部分。有什麼辦法可以做到這一點。感謝您的幫助

我忘了說,這是在C不是C++

+0

好友,谷歌的主要函數參數['argc,argv'] – vard 2012-04-28 06:26:06

+0

它不被作爲主要函數參數傳遞我已經嘗試 – Sean 2012-04-28 06:27:20

+0

對不起,你可以嘗試再次解釋,你想要做什麼? – vard 2012-04-28 06:52:11

回答

0

的「卡」計劃只知道它從標準輸入有數據。它不知道將數據傳遞給標準輸入 - 它可能是另一個程序,或重定向輸入,或來自設備。

從'sim'POV,只有stdin的數據。

IF可以保證,你會從另一個進程通過管道總是接收數據,你就可以開始尋找匹配「卡」過程過程標題,並從再提取相關工藝過程信息。但是,我懷疑這比你願意去的更多。

+0

有什麼方法可以閱讀輸入命令行的內容 – Sean 2012-04-28 07:03:45

+0

沒有「簡單」的方法。有一個困難的方法,它會牽涉到通過流程樹來尋找相關的進程sim卡的stdin,然後計算出相關進程的參數。 坦率地說,爲了你想達到的目的;我只是擴展你的「SIM卡」程序,以指定要讀取的文件的參數。這樣你就可以從main()的參數向量獲得文件的名字。 – Jonathan 2012-04-28 08:55:20

0

您正將zcat(通過管道)的輸出傳遞給您的程序,它不知道傳遞給zcat的參數的詳細信息。 你可以明確地傳遞它,就好像輸入流的一部分,

(echo 'zcat gcc'; zcat gcc) | sim 

但是這是一個黑客。如果您計劃僅以這種方式運行 程序,則可能是好的。