我不想在我的C程序中使用system(),因为system(3)阻塞,这不是我想要的。这样做的最佳方式是什么?
答案 0 :(得分:12)
我认为快速而肮脏的动作是调用system(command&)。他们&将产生新的过程。
答案 1 :(得分:8)
使用fork()
创建新流程,然后在其中使用system()
(或任何exec
功能)。然后,原始流程将能够继续执行。
答案 2 :(得分:7)
答案取决于你的真正目标。你没有说你正在使用什么平台,我对Windows知之甚少,所以这只涵盖你在linux / unix上的选择。
答案 3 :(得分:6)
您可能想要使用popen
。它创建新流程,并允许您将流程输出重定向到您自己的流程。
答案 4 :(得分:3)
如果在Windows中,请使用Windows API中的ShellExecute()
功能。
如果在Unix中,请按照fork()
然后system()
进行操作。