我想讓我的程序讀取另一個應用程序產生的標準輸出。我知道我可以使用popen
來做到這一點,並使用fread
來讀取輸出。通過讀取函數讀取標準輸出而不是fread
你知道是否可以使用read
(也可能是open
)?我在LINUX正與C/C++
我想讓我的程序讀取另一個應用程序產生的標準輸出。我知道我可以使用popen
來做到這一點,並使用fread
來讀取輸出。通過讀取函數讀取標準輸出而不是fread
你知道是否可以使用read
(也可能是open
)?我在LINUX正與C/C++
你可以通過調用爲FILE *fp
您從popen()
了獲得read()
文件描述符。但請注意,您不能混合撥打read()
和fread()
!
編輯
如果你想避免popen()
,你必須使用pipe()
,fork()
,exec..()
和dup2()
像它這樣做here
@basile Starynkevitch:感謝您的編輯! –
好東西!非常感謝。 –
怎麼樣用你的shell'$ /程序1。| 。/ program2',這將progam1的stdout連接到program2的stdin。 – hetepeperfan
如果你使用管道,你不需要打開,只需要讀取(pipe [],buffer,len) – Alexis
爲什麼你不想使用'popen'? –