我有一个工具,可以输出一个游戏所需的文件列表.如何在C程序中运行该实用程序并获取其输出,以便在同一程序中对其进行操作?

更新:关于缺乏信息的良好呼吁.该实用程序会输出一系列字符串,这应该可以在Mac/Windows/Linux上移植.请注意,我正在寻找一种编程方式来执行该实用程序并保留其输出(这将转到stdout).

推荐答案

对于Unix环境中的简单问题,请try popen().

从手册页:

函数通过创建管道、Forking 和调用shell来打开一个进程.

如果你使用阅读模式,这正是你所要求的.我不知道它是否在Windows中实现.

对于更复杂的问题,您需要查看进程间通信.

C++相关问答推荐

-O and -wrap的行为

使用sd-设备列举设备导致seg错误

Bison解析器转移/减少冲突

是否定义了数组指针类型转换为指针类型?""""

如何在C宏中确定Windows主目录?

标准的C17标准是用括号将参数包装在函数声明中吗

空指针的运行时强制转换

我在这里正确地解释了C操作顺序吗?

调用mProtection将堆栈上的内存设置为只读,直接导致程序SIGSEGV

将数据移动到寄存器时出现分段故障

S将C语言宏定义为自身的目的是什么?(在glibc标题中看到)

Vcpkg的配置文件

S在本文中的价值观到底出了什么问题?

从BIOS(8086)中读取刻度需要多少?

为什么Linux无法映射这个PT_LOAD ELF段?

Makefile无法将代码刷新到ATmega328p

RISC-V GCC编译器错误编译ASM代码

与指针的原始C数组或C++向量<;向量<;双>>;

gdb - 你能找到持有内部 glibc 锁的线程吗?

使用替代日历打印日期