在C代码中运行可执行文件

时间:2011-06-25 18:15:22

标签: c macos

我在Mac上用C(而不是C ++)编写。我希望能够从C运行UNIX可执行文件,如下所示:

#include <some-wacky-header.h>

int main (int argc, char * argv[])
{
    int r = some_wacky_executable_run(path_to_my_file_as_char_array);
    return 0;
}

注意:我不想使用system()命令来运行可执行文件。

2 个答案:

答案 0 :(得分:4)

exec()怎么样?它将您正在运行的程序替换为另一个程序,而不是像system()一样运行。

popen()是另一种选择,但我想如果你不喜欢system()(为什么?),你也不会喜欢它。

答案 1 :(得分:2)

我建议使用fork() + exec(),因为这样可以让原始流程继续并行工作。但是,除非您告诉我们您不想使用system()的原因,否则无法确定解决方案是否可以接受。如果您需要访问被调用可执行文件的标准输入或输出,则popen()是另一种选择。