源码解析:
#include <stdio.h>
FILE *popen(const char *command, const char *type);
int pclose(FILE *stream);
参数:
command : 指令
*type: 'r' 'w' ......
功能演示:
FILE *fp = popen(cmd.c_str(), "r");
if(nullptr == fp)
{
perror("popen");
return "error";
}
popen()是已读的,返回的是该命令
实现原理:
1.建立管道
2.创建子进程
3.让子进程通过管道执行 command,
4.再通过管道让子进程返回执行结果给父进程
5.父进程通过返回值 *fp 得到执行结果