0

我希望能够让更新程序应用程序启动新版本的应用程序,然后自行终止。

当我尝试通过“系统”调用新应用程序的“通常”时,更新程序永远不会退出。

想法?

4

3 回答 3

0

exec 系列函数用新进程替换当前进程。如果在 fork 后没有从孩子那里调用,这应该用新的程序替换您的程序。

系统调用 fork 然后在子进程中执行 shell 并等待它的返回,这就是你的更新程序不退出的原因。

参见 man 3 exec 和 man 3 system。

于 2011-06-06T19:01:29.323 回答
0

查看Windows上的CreateProcess或 Unix 上的exec。使用宏在操作系统特定代码上创建包装器。

于 2011-06-06T19:02:11.643 回答
0

您将需要类似于 Windows 上的 CreateProcess 的东西来创建和运行一个单独的进程。该system调用将等待您输入的任何命令完成然后返回。

于 2011-06-06T20:04:17.393 回答