当前位置: 技术问答>linux和unix
如何获得脚本执行的结果
来源: 互联网 发布时间:2016-06-02
本文导语: Linux下,我在C语言中用system函数启动了某个执行程序,该程序执行后会在shell窗口输出执行结果 我要如何才能获得这个执行的结果呢 向各位求教 | 方法很多你可以使用有名管道或者文件,但...
Linux下,我在C语言中用system函数启动了某个执行程序,该程序执行后会在shell窗口输出执行结果
我要如何才能获得这个执行的结果呢
向各位求教
我要如何才能获得这个执行的结果呢
向各位求教
|
方法很多你可以使用有名管道或者文件,但我觉得最简单的还是重置标准输出到一个pipe如:
pid_t pid;
int mypipe[2];
if (pipe (mypipe))
{
fprintf (stderr, "Pipe failed.n");
return EXIT_FAILURE;
}
if(0 == (pid = fork())){
close(1); //关闭标准输出先
close(pipe[0]); //关闭pipe的读端
dup(pipe[1]); //这样它会将标准输出(1)重定向到pipe[1];
system("你的命令");
}
else{
close(pipe[1]); //关闭写端
read(pipe[0],buf,buf_size); //这样就读到了。
}
|
我是没什么好办法,我都是用输出重定向把结果写到一个文件里,然后解析这个文件
|
重定向到标准输出也可以。
或者自己用 fork+execl。