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); }