如何将系统命令输出存储在变量中?

新手上路,请多包涵

我正在执行一个 system() 函数,它返回一个文件名。现在我不想在屏幕上显示输出(即文件名)或管道到新文件。我只想将它存储在一个变量中。那可能吗?如果是这样,如何?谢谢

原文由 IITian 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 492
1 个回答

单个文件名?是的。这当然是可能的,但不使用 system()

使用 popen() 。这在 cc++ 中可用,您已经用两者标记了您的问题,但可能会在其中一个或另一个中编写代码。

这是 C 语言中的一个示例:

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE *fpipe;
    char *command = "ls";
    char c = 0;

    if (0 == (fpipe = (FILE*)popen(command, "r")))
    {
        perror("popen() failed.");
        exit(EXIT_FAILURE);
    }

    while (fread(&c, sizeof c, 1, fpipe))
    {
        printf("%c", c);
    }

    pclose(fpipe);

    return EXIT_SUCCESS;
}

原文由 johnsyweb 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题