C語言獲取Shell返回結果的實現方法

2021-08-01 08:17:51 字數 603 閱讀 9773

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 ...