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

最佳答案

单个文件名?是的。当然可以,但是不能使用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;
}

关于c++ - 如何将系统命令输出存储在变量中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5919622/

10-11 13:03