我想在我的C程序中使用system()
命令運行腳本。在main()
裏面,我運行腳本並返回結果。我怎樣才能把腳本的結果放在一些字符串中並檢查條件?我知道我可以用文件做,但想知道是否可以把結果放入一個字符串中。輸出重定向在Unix和C
樣品將是這樣的:
main()
{
system("my_script_sh"); // How can I get the result of the my_script_sh
}
我想在我的C程序中使用system()
命令運行腳本。在main()
裏面,我運行腳本並返回結果。我怎樣才能把腳本的結果放在一些字符串中並檢查條件?我知道我可以用文件做,但想知道是否可以把結果放入一個字符串中。輸出重定向在Unix和C
樣品將是這樣的:
main()
{
system("my_script_sh"); // How can I get the result of the my_script_sh
}
您不能使用系統命令。做的最好的事情是用popen:
FILE *stream;
char buffer[150];
stream = popen("ls", "r");
while (fgets(buffer, 150, stream) != NULL){
// Copy the buffer to your output string etc.
}
pclose(stream);
使用popen()
和讀取流到一個char *
緩衝。
那麼做是採取system("my_script_sh")
你的計劃,並從有管殼調用程序的最簡單的事情 - 如:my_script_sh | ./your_c_program
,然後你的C程序只是從stdin(文件描述符0)中讀取數據。
如果這是不可能的,那麼看看man 3 popen
。基本上,您使用popen
而不是system
,它爲您提供了一個文件句柄,您可以從中讀取該句柄以獲取程序的輸出。
這裏有幾個環節,可能是有用的:
感謝。將嘗試popen。 – user629034 2011-04-12 18:49:04