2013-07-31 92 views
0

我想讓我的程序讀取另一個應用程序產生的標準輸出。我知道我可以使用popen來做到這一點,並使用fread來讀取輸出。通過讀取函數讀取標準輸出而不是fread

你知道是否可以使用read(也可能是open)?我在LINUX正與C/C++

+0

怎麼樣用你的shell'$ /程序1。| 。/ program2',這將progam1的stdout連接到program2的stdin。 – hetepeperfan

+0

如果你使用管道,你不需要打開,只需要讀取(pipe [],buffer,len) – Alexis

+0

爲什麼你不想使用'popen'? –

回答

2

你可以通過調用爲FILE *fp您從popen()了獲得read()文件描述符。但請注意,您不能混合撥打read()fread()

編輯

如果你想避免popen(),你必須使用pipe()fork()exec..()dup2()像它這樣做here

+0

@basile Starynkevitch:感謝您的編輯! –

+0

好東西!非常感謝。 –