系统相关
首页 > 系统相关> > Linux popen()执行shell命令

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