popen && pclose函数】的更多相关文章

1. 函数操作: 创建一个管道,调用fork产生一个子进程,关闭管道的不使用端,执行一个shell以运行命令,然后等待命令终止: 2. 函数原型: #include <stdio.h> FILE *popen(const char *cmdstring, const char *type); ret = 成功返回文件指针,失败返回NULL int pclose(FILE *fp); ret = cmdstring的终止状态,失败返回- 函数popen先执行fork,然后调动exec执行cmds…
常见的操作是创建一个管道连接到另一个进程,然后读其输出或向其输入端发送数据,为此,标准I/O库提供了两个函数popen和pclose.这两个函数实现的操作是:创建一个管道,调用fork产生一个子进程,关闭管道的不使用端,执行一个shell以运行命令,然后等待命令终止. #include <stdio.h> FILE *popen(const char *cmdstring, const char *type); 返回值:若成功则返回文件指针,若出错则返回NULL int pclose(FILE…
http://my.oschina.net/renhc/blog/35116 [IPC通信]基于管道的popen和pclose函数 恋恋美食  恋恋美食 发布时间: 2011/11/12 23:20 阅读: 15897 收藏: 13 点赞: 5 评论: 0 标准I/O函数库提供了popen函数,它启动另外一个进程去执行一个shell命令行. 这里我们称调用popen的进程为父进程,由popen启动的进程称为子进程. popen函数还创建一个管道用于父子进程间通信.父进程要么从管道读信息,要么向管…
popen, pclose - pipe stream to or from a process FILE *popen( const char *command, const char *type); int pclose(FILE *stream); 描述 The popen() function opens a process by creating a pipe, forking, and invoking the shell.  Since a pipe is by definitio…
popen() 函数 #include <stdio.h>FILE * popen(const char *command , const char *type );int pclose(FILE *stream); 用创建管道的方式启动一个进程,并调用shell. 因为管道是被定义成单向的,所以type参数只能定义成只读或者只写,不能是两者同时,结果流也相应的是只读或者只写. command 参数是一个字符串指针, 指向的是一个以null结束符结尾的字符串, 这个字符串包含一个shell命令…
背景: popen()函数通过创建一个管道,调用fork()产生一个子进程,执行一个shell以运行命令来开启一个进程.这个管道必须由pclose()函数关闭,而不是fclose()函数. pclose()函数关闭标准I/O流,等待命令执行结束,然后返回shell的终止状态.如果shell不能被执行,则pclose()返回的终止状态与shell已执行exit一样. 而子进程的退出状态,常用以下几个宏进行获取. 1. WIFEXITED(status) 若此值为非0 表明进程正常结束. 若上宏为真…
当我们需要将输出作为标准输入传递给一个命令,或者将一个命令的输出作为标准输入来读取, 一般会想到使用pipe与fork相结合的方式,来重定向标准输入/输出给指定命令. popen/pclose 帮助我们简化了上述工作,只需要调用: FILE* fpout = popen("more", "w"); 就可以将输出写入more命令.只需要调用: FILE* fpin = popen("ls -l .", "r"); 就可以从输入读…
SYNOPSIS #include <stdio.h> FILE *popen(const char *command, const char *type); int pclose(FILE *stream); 描述 popen() 函数 用 创建管道 的 方式 启动 一个 进程, 并调用 shell. 因为 管道 是被定义成 单向的, 所以 type 参数 只能 定义成 只读 或者 只写, 不能是 两者同时, 结果流 也相应的 是 只读 或者 只写. command 参数 是 一个 字符串指…
定义和用法 pclose() 函数关闭由 popen() 打开的进程. 如果失败,该函数返回 FALSE. 语法 pclose(pipe) 参数 描述 pipe 必需.规定由 popen() 打开的进程. 实例 <?php高佣联盟 www.cgewang.com$file = popen("/bin/ls","r");//some code to be executedpclose($file);?>…
问题请看这里: [apue] 使用 popen/pclose 的一点疑问 当时怀疑是pclose关闭了使用完成的管道,因此在pclose之前加一个足够长的sleep,再次观察进程文件列表: 哈哈,这下都能看到了.同时可以看出来子进程more的管道是经过重定向的,定向到了标准输入(stdin,0) 还可以观察到,父进程不关闭管道,子进程就没有任何显示!可见more是等待得到全部输入后才开始工作的…