我正在执行一个向我返回文件名的system()函数。现在,我不想在屏幕上显示输出(即文件名)或管道到新文件。我只想将其存储在变量中。那可能吗?如果是这样,怎么办?
谢谢
最佳答案
单个文件名?是的。当然可以,但是不能使用system()
。
使用 popen()
。这可以在c和c++中使用,您已经用两个标记了您的问题,但是可能要在其中一个进行编码。
这是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/