我想在C程序中调用echo,然后将其输出重定向到文件。但我不知道如何在C程序中调用unix命令。非常感谢任何帮助。
谢谢, Aashish
答案 0 :(得分:4)
#include <stdlib.h>
int main() {
system("echo test > filename");
return 0;
}
是这样做的简单方法。如果您想要更好地控制流程,则应调查fork/exec。
但是,您可以使用C stdlib文件函数轻松编写文件。那将是更多轻量级,而不是产生一个新的过程。
答案 1 :(得分:3)
使用system
在C中执行UNIX命令的替代方法是execlp。
这一切都取决于你想要使用它们的方式。如果您想要用户输入,那么您可能想要使用execlp / execve。否则,system
是一种快速,简便的方法,可以让UNIX使用您的C程序。
对于重定向,您可以使用pipes。
它将帮助您查看要重定向到打开的文件的数据。使用system
您只需设置它,但没有真正的选项来设置它或按照您希望的方式进行优化。
答案 2 :(得分:3)
如果你特别想要执行这个程序以获取它的输出,你宁愿需要popen()而不是system()。
答案 3 :(得分:1)
您可以使用system功能执行此操作:
#include <stdlib.h>
int main() {
system("echo 'words' > file");
return 0;
}
或使用fopen,printf,fclose。