2015-06-12 76 views
0

我想在終端執行一個命令並分析結果,但我無法得到輸出寫入變量。 我做了一個示例代碼,顯示我的問題:C通過終端命令和打印答案

extern char commandResult; 

int main() 
{ 
    char commandResult; 
    commandResult = system("[ -f /etc/hosts ] && echo "Found" || echo "Not found""); 
    printf("result: "); 
    printf("%s", commandResult); 
    printf("\n"); 
} 

但輸出是這樣的:

CMakeCache.txt  Makefile  logo.c 
CMakeFiles   pitm   pitm.c 
CMakeLists.txt  README.md 
LICENSE    cmake_install.cmake 
result: (null) <- The output is supposed to be here! :/ 

我要分析的變量有「開關/箱」,或者如果/其他塊像

if(commandResult == "Found") { 
    printf("Yes"); 
} else { 
    printf("No"); 
} 

所以任何人都可以告訴我如何獲得輸出給我寫入變量,而不是直接輸出?

回答

2

system不會返回輸出命令您運行但只是返回退出狀態。您可能想要使用popen()來讀取您運行的命令的輸出。查看鏈接手冊頁中的示例。

您還需要使用strcmp來比較字符串,而不是==

+0

謝謝,現在它工作:) – Lev