我試圖使用popen()
來捕捉調用的stderr,但當然它似乎沒有這樣做。有任何想法嗎?c popen不會捕捉stderr
我的代碼看起來或多或少是這樣的:
popen("nedit", "r");
但我發現了我的屏幕上非UTF8這一切的垃圾......
我試圖使用popen()
來捕捉調用的stderr,但當然它似乎沒有這樣做。有任何想法嗎?c popen不會捕捉stderr
我的代碼看起來或多或少是這樣的:
popen("nedit", "r");
但我發現了我的屏幕上非UTF8這一切的垃圾......
popen
讓你在一個文件句柄過程'stdout,而不是它的stderr。它的第一個參數被解釋爲一個shell命令,所以你可以在裏面做重定向:
FILE *p = popen("prog 2>&1", "r");
,或者,如果你不想在標準輸出的,
FILE *p = popen("prog 2>&1 >/dev/null", "r");
(任何其他文件除了/dev/null
是可以接受的爲好)
如果你想拋棄所有錯誤信息,那麼你可以使用:
popen("nedit 2>/dev/null", "r");
如果我們根本不需要輸出,我們不能做'popen(...,「w」);'而不是? –