linux下获取在终端中输出的数据

转自: https://blog.csdn.net/woxinyijiuw/article/details/7642309
  1. /*******************************************************************************************  
  2. ** Name:popen.c  
  3. **      This program is used to show the usage of popen() .  
  4. *******************************************************************************************/  
  5. #include <sys/types.h>   
  6. #include <unistd.h>   
  7. #include <stdlib.h>   
  8. #include <stdio.h>   
  9. #include <string.h>  
  10.   
  11. int main( void )   
  12. {   
  13.    FILE   *stream;   
  14.    FILE   *wstream;  
  15.    char   buf[1024];   
  16.        
  17.     memset( buf, '\0', sizeof(buf) );//初始化buf,以免后面写如乱码到文件中  
  18.     stream = popen( "ls -l", "r" ); //将“ls -l”命令的输出 通过管道读取(“r”参数)到FILE* stream  
  19.     wstream = fopen( "test_popen.txt", "w+"); //新建一个可写的文件  
  20.   
  21.     fread( buf, sizeof(char), sizeof(buf), stream); //将刚刚FILE* stream的数据流读取到buf中  
  22.     fwrite( buf, 1, sizeof(buf), wstream );//将buf中的数据写到FILE    *wstream对应的流中,也是写到文件中  
  23.       
  24.     pclose( stream );    
  25.     fclose( wstream );  
  26.       
  27.     return 0;  
  28. }    

猜你喜欢

转载自blog.csdn.net/ljh618625/article/details/80368703
今日推荐