Chinaunix

标题: 管道(popen) [打印本页]

作者: net_robber    时间: 2006-04-17 13:13
标题: 管道(popen)
解决了一个以前没有解决的问题

我原来在这里问过一个问题,调用SHELL的时候,如何获得SHELL的返回值

上次没有人回答,现在我自己解决了。估计有好多人想知道答案,所以在这里公布一下


方法就是
FILE *  popen( const char*, const char* )函数

管道函数
两个参数,第一个是要执行的SHELL,第二个是文件打开属性,一般用   " r "         就足够了


函数返回一个FILE 指针。然后可以用读取文件的方法读取返回值!!!


欲知详情如何,   man



[ 本帖最后由 net_robber 于 2006-4-17 13:29 编辑 ]
作者: wingger    时间: 2006-04-17 13:35
拜托,说话专业点,用词准确点。
这个不叫“返回值”,
返回值应该用 wait/waitpid + WEXITSTATUS 宏来取。

这个只能叫“如何捕获外部命令的输出信息”
作者: net_robber    时间: 2006-04-17 16:24
!!!!!!!!!!!!!!!

我没有搞明白啊,不是我不想说清楚,不专业么,嘿嘿,以后努力了

另外你说的那个宏是怎么回事啊,能讲一下么????
作者: luopc    时间: 2006-04-17 22:52
就是你先fork一个子进程,exec去执行你的SHELL进行,在子进程退出后,父进程通过wait来获取返回信息,通过宏定义可知道子进程是什么具体原因退出的。
作者: net_robber    时间: 2006-04-18 08:48
正在研究相关的东西。呵呵。学习是一辈子的事,从小老爸老妈就这么教我

努力ing.........




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2