我在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()
命令来运行可执行文件。
答案 0 :(得分:4)
exec()
怎么样?它将您正在运行的程序替换为另一个程序,而不是像system()
一样运行。
popen()
是另一种选择,但我想如果你不喜欢system()
(为什么?),你也不会喜欢它。
答案 1 :(得分:2)
我建议使用fork()
+ exec()
,因为这样可以让原始流程继续并行工作。但是,除非您告诉我们您不想使用system()
的原因,否则无法确定此解决方案是否可以接受。如果您需要访问被调用可执行文件的标准输入或输出,则popen()
是另一种选择。