读书人

linux 终端中输入授命 quot;lsquot;并将显示的

发布时间: 2013-09-10 13:42:18 作者: rapoo

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命令。

读书人网 >UNIXLINUX

热点推荐