如何從我的C++程序向Linux控制檯(Ubuntu)發出命令,並將一個值(我的命令告訴的值)分配給字符串變量?請給我一個例子,在這個例子中,程序給出了簡單的命令「uname -a」給控制檯並寫入結果。C++中的Linux控制檯命令(gcc編譯器)
對不起我英語不好,我知道它很少。如果有人會用俄語寫他的答案(如果允許的話),我會很高興。我在俄羅斯的資源中尋找我的問題的答案,但什麼都沒發現,你是我最後的希望。
如何從我的C++程序向Linux控制檯(Ubuntu)發出命令,並將一個值(我的命令告訴的值)分配給字符串變量?請給我一個例子,在這個例子中,程序給出了簡單的命令「uname -a」給控制檯並寫入結果。C++中的Linux控制檯命令(gcc編譯器)
對不起我英語不好,我知道它很少。如果有人會用俄語寫他的答案(如果允許的話),我會很高興。我在俄羅斯的資源中尋找我的問題的答案,但什麼都沒發現,你是我最後的希望。
您需要的命令是popen
。你可以通過在你的shell中輸入man popen
來獲得關於它的信息;如果你的Linux發行版運行它的俄文翻譯,它應該以俄文顯示它的信息。
基本上,popen
只是打開一個「文件」(流),你可以像使用普通文件一樣工作。這裏有一個如何使用它的例子:
#include <stdio.h>
int main()
{
FILE *f;
char stuff[100];
f = popen("uname -a", "r");
fgets(stuff, 100, f);
printf("%s", stuff);
pclose(f);
}
上面的代碼沒有任何錯誤處理;您應在閱讀並瞭解the complete manual page(rus)後插入適當的檢查。
尋找解釋popen(3)庫例程的俄語資源。您將需要使用popen來啓動命令,然後讀取管道以獲取輸出。
非常感謝!我愛stackoverflow.com! – Eimrine 2010-11-13 23:00:23