我希望能够让更新程序应用程序启动新版本的应用程序,然后自行终止。
当我尝试通过'system'调用新应用程序的'通常'时,更新程序永远不会退出。
思想?
答案 0 :(得分:0)
exec系列函数用新的替换当前进程。如果没有在fork之后从child调用,则应该用新的程序替换你的程序。
系统调用fork然后在子代中执行shell并等待它的返回,这就是你的更新程序没有退出的原因。
参见man 3 exec and man 3 system。
答案 1 :(得分:0)
您需要在Windows上创建并运行单独进程的CreateProcess。 system
调用将等待您输入的任何命令完成然后返回。
答案 2 :(得分:-1)
在Windows上查看CreateProcess或在Unix上查看exec。使用宏来创建特定于操作系统的代码的包装器。