popen和pclose函数:函数
这两个函数是标准I/O库里的。code
#include <stdio.h>进程
FILE *popen(const char *command, const char *type)get
int pclose(FILE *stream)string
描述:它建立另外一个进程,在进程中执行command命令,而后根据type类型,it
若是是“r”,那么调用进程读进command的标准输出。io
若是是“w”,那么调用进程写到command的标准输入。class
例子:stream
/*从标准输入读经一个文件名,随后构建一个命令,并把它传递给popen, 而后将这个命令的输出复制到标准输出上*/ //mainpopen.c #include <stdio.h> #include <errno.h> #include <string.h> #include <stdlib.h> #define MAXLINE 1000 int main(int argc, char **argv) { size_t n; char buff[MAXLINE], command[MAXLINE]; FILE *fp; fgets(buff, MAXLINE, stdin);//从标准输入获取路径名 n = strlen(buff); if (buff[n-1] == '\n')//剔除换行符 n--; snprintf(command, sizeof(command), "cat %s", buff);//构建命令 fp = popen(command, "r");//这个命令的输出将作为一个流输出出去 while (fgets(buff, MAXLINE, fp) != NULL)//将这个输出流读进buff去 fputs(buff, stdout);//复制到标准输出去。 pclose(fp); exit(0); }