我想在我的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