popen会启动一个shell进程来解释请求的命令
使用方法和文件操作类似
读
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
FILE *read_fp;
char buffer[BUFSIZ + 1];
int chars_read;
memset(buffer,'\0',sizeof(buffer));
read_fp = popen("uname -a","r");
if(read_fp != NULL){
chars_read = fread(buffer,sizeof(char),BUFSIZ,read_fp);
if(chars_read > 0){
printf("Output was:-\n%s\n",buffer);
}
pclose(read_fp);
exit(EXIT_SUCCESS);
}
exit(EXIT_FAILURE);
}
写
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
FILE *write_fp;
char buffer[BUFSIZ + 1];
sprintf(buffer,"abcdefsdfsdfsdfaf");
write_fp = popen("od -c","w");
if(write_fp != NULL){
fwrite(buffer,sizeof(char),strlen(buffer),write_fp);
pclose(write_fp);
exit(EXIT_SUCCESS);
}
exit(EXIT_FAILURE);
}