【问题标题】:stdout to a variable c/c++标准输出到变量 c/c++
【发布时间】:2012-09-08 13:53:37
【问题描述】:

我在我的 c++ 代码中使用int res = system("uname -p");

它会使用

在标准输出中给出结果

fprintf(stdout,"execution returned %d.\n",res);

我想将此结果字符串存储在变量中,但无法存储。

我google了它,但找不到合适的解决方案,谁能告诉我正确的方法。

【问题讨论】:

  • 你想在字符串 varbiale - res 中存储什么?
  • 我认为他想将运行uname -p 的输出存储在字符串变量中。
  • 只是为了非常清楚。我在计算机的终端中运行uname -p,它输出i386。您希望得到一个包含i386 的字符串变量,对吧?如果是这样,您将需要 popen() 并从它返回的流中读取。
  • @millimoose 是的,我想将 i386 存储在一个字符串中,以便我可以再次使用它

标签: c++ c linux system stdout


【解决方案1】:

首先,您无需以编程方式运行uname 命令来获取您的处理器。您可以简单地运行 uname(2) syscalluname 命令调用)。你也可以从你的程序中读取和解析/proc/cpuinfo

如果您想读取某个命令的输出,请使用popen(3) 库函数。

另请参阅my answer 相关问题。

【讨论】:

  • 嘿,谢谢millimoose 和BasileStarynkevitch,popen() 对我有用! :)
  • 但是在你的情况下你真的应该使用uname(2);这样做popen 是荒谬的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多