【发布时间】:2010-11-13 21:17:29
【问题描述】:
如何从我的 c++ 程序向 Linux 控制台 (Ubuntu) 发出命令,并将我的命令告诉的值分配给字符串变量?请给我一个例子,其中程序向控制台发出简单的命令“uname -a”并写入结果。
对不起,我的英语不好,我知道的很少。如果有人用俄语写下他的答案(如果允许的话),我会很高兴。我在俄罗斯资源中寻找我的问题的答案,但一无所获,你是我最后的希望。
【问题讨论】:
如何从我的 c++ 程序向 Linux 控制台 (Ubuntu) 发出命令,并将我的命令告诉的值分配给字符串变量?请给我一个例子,其中程序向控制台发出简单的命令“uname -a”并写入结果。
对不起,我的英语不好,我知道的很少。如果有人用俄语写下他的答案(如果允许的话),我会很高兴。我在俄罗斯资源中寻找我的问题的答案,但一无所获,你是我最后的希望。
【问题讨论】:
您需要的命令是popen。您可以通过在 shell 中输入 man popen 来获取有关它的信息;如果您的 Linux 发行版运行俄语翻译,它应该以俄语显示有关它的信息。
基本上,popen 只是打开一个“文件”(流),您可以像使用常规文件一样使用它。这是一个如何使用它的示例:
#include <stdio.h>
int main()
{
FILE *f;
char stuff[100];
f = popen("uname -a", "r");
fgets(stuff, 100, f);
printf("%s", stuff);
pclose(f);
}
上面的代码没有任何错误处理;阅读并理解the complete manual page (rus) 后应插入相应的检查。
【讨论】:
查找解释 popen(3) 库例程的俄语资源。您需要使用 popen 启动命令,然后读取管道以获取输出。
【讨论】: