【发布时间】:2016-07-14 00:43:22
【问题描述】:
我正在尝试编写一个简单的 c 程序来打印 C 编译器版本。所以我写道:
#include <stdio.h>
int main() {
printf("you have %d", system("gcc --version");
}
输出:
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
you have compiler 0
有什么想法吗?
【问题讨论】:
-
你有什么问题?
-
你读过
systemman page吗?它告诉您system的返回值是什么? -
您可能想要发布产生输出的实际代码,而不是模糊相似的东西。另外,请阅读
system()的手册页。 -
我怎样才能把它写成正确的顺序?我的意思是它会打印出类似的内容:你有编译器你有 gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4 版权所有 (C) 2013 Free Software Foundation, Inc. 这是免费软件;查看复制条件的来源。没有保修;甚至不是为了适销性或适合特定目的。
-
对于初学者来说,不要使用
system,因为它并没有达到你想要的效果。请改用popen。或者您可以在printf之后 运行system。并使用您的上述评论编辑您的问题,因为它解释了您真正要问的问题。