我正在执行一个 system() 函数,它返回一个文件名。现在我不想在屏幕上显示输出(即文件名)或管道到新文件。我只想将它存储在一个变量中。那可能吗?如果是这样,如何?谢谢 原文由 IITian 发布,翻译遵循 CC BY-SA 4.0 许可协议
单个文件名?是的。这当然是可能的,但不使用 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; } 原文由 johnsyweb 发布,翻译遵循 CC BY-SA 4.0 许可协议
单个文件名?是的。这当然是可能的,但不使用
system()
。使用
popen()
。这在 c 和 c++ 中可用,您已经用两者标记了您的问题,但可能会在其中一个或另一个中编写代码。这是 C 语言中的一个示例: