Linux popen()执行shell命令
作者:互联网
函数原型
#include <stdio.h>
FILE * popen(const char *command , const char *type );
int pclose(FILE *stream);
popen 通过type是r还是w确定command的输入/输出方向,r和w是相对command的管道而言的。
r表示command从管道中读入,w表示 command通过管道输出到它的stdout
返回值: popen返回FIFO管道的文件流指针
关闭指针: pclose则用于使用结束后关闭这个指针
示例
FILE *stream;
FILE *wstream;
char buf[1024] = {0};
stream = popen( "ls -l", "r" ); //将“ls -l”命令的输出 通过管道读取(“r”参数)到FILE* stream
wstream = fopen( "test_popen.txt", "w+"); //新建一个可写的文件
fread( buf, sizeof(char), sizeof(buf), stream); //将刚刚FILE* stream的数据流读取到buf中
fwrite( buf, 1, sizeof(buf), wstream );//将buf中的数据写到FILE *wstream对应的流中,也是写到文件中
pclose( stream );
fclose( wstream );
标签:shell,stream,popen,wstream,command,FILE,Linux,buf 来源: https://www.cnblogs.com/lodger47/p/14993350.html