linux程式設計時候,如果我們需要呼叫shell命令或指令碼通常使用system方法。如system("ls")
該方法返回值為0或-1,即成功或失敗。而有的時候我們想要獲取shell命令執行的結果,該怎麼辦呢?
我們可以將shell命令結果重定向到檔案中,然後再讀取這個檔案,如:
system("ls>result.txt")
file *fp = fopen(result, "r")
當然我們也可以直接使用管道,如下面示例:
#include #include #include #include #include #include char* shellcmd(char* cmd, char* buff, int size)
while(fgets(temp, sizeof(temp), fp) != null)
else
} if(fp != null)
return buff;
}int main(void)
注意:c語言呼叫shell命令是新建乙個程序執行的,執行速度很慢,最好不要c、shell混合程式設計。
反射獲取方法返回結果
在我們開發中,有乙個統一的介面,然後我們幾個開發的都實現這個介面 通過反射獲得方法返回結果 拋異常我就省略了 bean 介面 methodname 方法名 params 引數集合 paramclass 引數的class result 方法返回值 public static object execut...
linux的C獲取shell執行返回的結果
linux下通過c執行命令的時候一半都是使用system 方法,但是該方法執行命令返回的值是 1或0,而有時候我們需要得到執行命令後的結果。可以使用管道實現 輸出到檔案流的函式是popen 例如 file isr isr popen ls l r ls l命令的輸出通過管道讀取 r 引數 到isr ...
linux的C獲取shell執行返回的結果
linux下通過c執行命令的時候一半都是使用system 方法,但是該方法執行命令返回的值是 1或0,而有時候我們需要得到執行命令後的結果。可以使用管道實現 輸出到檔案流的函式是popen 例如 file isr isr popen ls l r ls l命令的輸出通過管道讀取 r 引數 到isr ...