2012-08-14 41 views
-1

可能重複:
Running a shell command in a c program如何調用UNIX從C程序命令

我想打電話給回聲在C程序然後將其輸出重定向到一個文件中。但我不知道如何在C程序中調用unix命令。任何幫助深表感謝。

感謝, Aashish

+5

你爲什麼叫'echo'?那麼'* printf'函數呢? (例如'FILE * f = fopen(「file」,「w」); fprintf(f,「words」); fclose(f);') – huon 2012-08-14 12:57:12

回答

1

您可以使用system功能做到這一點:

#include <stdlib.h> 

int main() { 
    system("echo 'words' > file"); 
    return 0; 
} 

或使用的fopen,printf的,FCLOSE。

4
#include <stdlib.h> 

int main() { 
    system("echo test > filename"); 
    return 0; 
} 

是做這件事的微不足道的方法。如果你想要更多的控制過程,那麼你應該調查fork/exec

但是,您可以使用C stdlib文件函數輕鬆寫入文件。這將是更多輕於產卵一個新的過程。

3

使用system在C中執行UNIX命令的替代方法是execlp

這一切都取決於你想要使用它們的方式。如果你想用戶輸入,那麼你可能想使用execlp/execve。否則,system是讓UNIX與C程序一起工作的一種快速,簡單的方法。

對於重定向,您可以使用pipes。 這將幫助您查看要重定向到您打開的文件的數據。用system你只需設置它,但沒有真正的選項來設置它或按照自己的喜好進行優化。

3

如果你特別想執行這個程序來獲取它的輸出,你寧願要popen()而不是system()。