作用:
用于执行程序将执行结果返回到一个文件流中
注意:
使用完必须用pclose关闭,不然会产生僵尸进程
原型:
FILE *popen(const char *command, const char *type);
command:要执行的命令/程序
type:只能是r(只读)或者w(只写)的一种,因为popen会创建一个pipe管道去处理
上代码:
执行 ls -l 并把它放在ret.txt里面
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
FILE *fp=NULL;
int fd;
char buff[1024]={0};
fp = popen("ls -l","r");
if(fp!=NULL){
fread(buff,1,1024,fp);
}
fd = open("./ret.txt",O_RDWR|O_CREAT,0600);
if(fd==-1){
printf("open failed");
}
write(fd,buff,strlen(buff));
close(fd);
pclose(fp);
return 0;
查看ret.txt