工作原理:popen先執行fork,然后調用exec執行cmdstring,並返回一個標准的I/O文件指針。
頭文件:#include<stdio.h>
原型:FILE *popen(const char *cmdstring, const char *type)
cmdstring:包含shell命令字符串
type:為”r”時,則文件指針連接到cmdstring的標准輸出,也就是代表指向執行shell命令返回的消息,也可以認為鏈接到stdout
為”w”時,則文件指針連接到cmdstring的標准輸入,也可以認為鏈接到stdin
int pclose(FILE *fp);
fp:為ponen返回的文件指針
返回值:成功返回cmdstring的終止狀態;出錯返回-1
下面是執行通過popen函數執行shell命令ls的代碼
#include <stdio.h> int main () { char c[100]; FILE *fp; fp=popen("systeminfo","r"); while (fgets(c, sizeof(c), fp) != NULL) { printf("%s",c); // puts(c); // fputs(c,fp); } pclose(fp); return(0); }