新浪微博 登陆  注册   设为首页 加入收藏

学PHP >> 服务器架构 >> 我对popen(char *cmd,char *mode)的理解

我对popen(char *cmd,char *mode)的理解

查看次数36058 发表时间2012-07-19 22:45:16

FILE *popen(char *cmd,char *mode)

如果 mode 是“r",通常是一个父进程调用popen函数,那么此时popen生成了一个子进程,子进程干的事情 就是cmd,然后做完这件事后,会把结果送进子进程的标准输出,而这个标准输出就对应着父进程的一个流文件指针,比如FILE *fd,fd=popen(cmd,"r")的话,子进程的标准输出就对应于父进程的fd了。


如果mode 是”w“的话,父进程调用popen函数,并且把父进程的某个文件的流文件指针对应到子进程的标准输入上,即父进程向子进程提供标准输入数据。例子:

FILE *fd,fd=popen(cmd,"w")。此时就把fd对应的流文件作为子进程的标准输入了。


注意:popen是半双工的。父进行不可能同时既为子进程提供标准输入,又接受子进程的标准输出。


参考文献:《UNIX 环境高级编程》 第二版。508页


(转发请注明转自:学PHP)    


  相关推荐



1楼 Tisha说: 2016-12-21 15:41:18
I really wish there were more artilces like this on the web.
2楼 Lilly说: 2016-12-21 19:07:53
Bralciinle for free; your parents must be a sweetheart and a certified genius.

  发表评论
昵称:
(不超过20个字符或10个汉字)
内容: