我希望能够让更新程序应用程序启动新版本的应用程序,然后自行终止。
当我尝试通过“系统”调用新应用程序的“通常”时,更新程序永远不会退出。
想法?
exec 系列函数用新进程替换当前进程。如果在 fork 后没有从孩子那里调用,这应该用新的程序替换您的程序。
系统调用 fork 然后在子进程中执行 shell 并等待它的返回,这就是你的更新程序不退出的原因。
参见 man 3 exec 和 man 3 system。
查看Windows上的CreateProcess或 Unix 上的exec。使用宏在操作系统特定代码上创建包装器。
您将需要类似于 Windows 上的 CreateProcess 的东西来创建和运行一个单独的进程。该system
调用将等待您输入的任何命令完成然后返回。