如果之前已经有相关内容,我很抱歉,但是我在StackOverflow上找不到。
基本上,我想运行通常在Windows命令提示符下运行的东西:
msiexec /i file.msi /q
以及其他类型的命令从我的C程序中运行。这可能吗?
谢谢。
Pablo和Dave是对的,这取决于你想做什么。
execl
将新应用程序加载到内存中,并在当前进程的位置运行它。在execl()
调用之后,您的程序将结束。
System在子shell中运行应用程序,您可以检索其退出状态,但无法获取有关其stdin/stdout数据的任何信息。
您对启动进程后发生的事情有多感兴趣?
system
创建一个子shell并执行您的字符串。它不会给您太多控制权。如果您更关心正在进行的操作(与分叉进程的fd交互),则 fork
然后 execl
是常见的用法。 - richo