【发布时间】:2013-12-06 19:16:36
【问题描述】:
我正在尝试在 C 中运行system() 命令。但我希望将输出存储在字符串变量中,但后来我发现系统命令的返回值为零或数值。例如,如果我输入system(ls),结果将打印在 shell 中,但我想要的是把它变成一个字符串。有可能吗?
如果不可能,谁能告诉我如何将system() 命令的输出定向到文件,以便我可以从文件中读取它。
while(1){
bzero(buff,MAXLINE+1);
read(ns,buff,MAXLINE);
puts(buff);
system(buff);
send(ns,buff,strlen(buff)+1,0);
}
上面的代码没有把系统命令的输出放到一个字符串中,所以我试着把输出放到一个文本文件中,但也没有用:
while(1){
FILE *f=fopen("tmp.txt","w");
bzero(buff,MAXLINE+1);
read(ns,buff,MAXLINE);
system(buff>f);
puts(buff);
send(ns,buff,strlen(buff)+1,0);
}
【问题讨论】:
-
system()不是命令,而是函数。 “零或数值” - 所以零不是数字,对吧?此外,您应该使用 google 或 SO 自己的搜索工具进行一些研究 - 这已经被问了几十次了。 -
这个问题似乎是题外话,因为它没有展示研究。
-
我用谷歌做了 2 个小时的研究,我找到了我想要的方式,考虑到你的声誉,如果你能找到,你能不能指出以前问过的问题之一