【问题标题】:c++ get variable set by call to system()c++ 通过调用 system() 获取变量集
【发布时间】:2012-08-17 02:37:07
【问题描述】:

我正在编写一个程序,我决定输入/输出最好允许自定义命令。我已经编写了一个配置文件并定义了一系列命令(只是 echo 等)并使用 system() 在程序中调用这些命令。问题是我需要从这些命令中获取输入。我尝试使用 "read ANSWER" 然后 getenv("ANSWER) 但这会返回一个空字符串。最好的方法是什么?

【问题讨论】:

    标签: c++ input system getenv


    【解决方案1】:

    由于你没有提供任何代码,我不得不发挥我的想象力。如果我弄错了,请告诉我。你正在做这样的事情:

    system("command");
    

    而且,您希望能够读取该命令生成的输出。如果我错了,请提供您在问题中使用的代码。

    如果我是对的,那么,您想改用popen。它打开一个 C 风格的 I/O 流。您可以指定读取或写入(但不能同时指定两者)。您想使用"r" 进行阅读。完成后使用pclose 关闭流。

    char buf[512];
    FILE *cmd = popen("command", "r");
    while (fgets(buf, sizeof(buf), cmd) != 0) {
        //...
    }
    pclose(cmd);
    

    【讨论】:

    • 感谢您的快速回复 :) 这看起来很有希望,应该可以解决问题
    猜你喜欢
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2017-12-19
    • 2019-04-03
    • 1970-01-01
    • 2014-01-13
    • 2011-09-28
    • 1970-01-01
    相关资源
    最近更新 更多