首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

linux 终端中输入授命 "ls"并将显示的结果存入程序中的疑问

2013-09-10 
linux 终端中输入指令 ls,并将显示的结果存入程序中的疑问先贴下代码(在当前文件目录下)#include stdio

linux 终端中输入指令 "ls",并将显示的结果存入程序中的疑问
先贴下代码(在当前文件目录下)


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   char buff[255];
   memset(buff, 0x00 255);
   system("ls -al | grep ma.txt");
   read(1, buff 255); //1代表stdout,将结果输入buff中
    printf("buffer=[%s]\n",buff);
   return 0;
}

这段代码我就是想把ls的执行结果存入程序中的buff里面,完后留着也后用,这是我想的实现方法,但是不好用
在read的时候就一直阻塞住了,我也想过其他的方法,就是把ls命令重定向到文件中,然后程序读此文件,但是这么做感觉有点2,大家说应该这么做啊???,还有我这个代码为啥不好用呢???? linux 终端 c
[解决办法]
fp=popen("ls -al 
[解决办法]
 grep ma.txt", "r");
再把数据读出来fread(buff, 1, 255, fp)
[解决办法]
我觉得还可以更进一部,用“opendir读取目录,并过滤文件”代替popen执行Shell命令。

热点排行
Bad Request.