C Windows:生成子进程以停止并重新启动父进程(超时后)
我必须实现一个程序,除其他外,它必须自杀(响应接收到的命令)并在中止前设置的超时后重新启动;此外,它必须记录重启是由于这种操作。在linux中,使用fork和管理不同的pid可以很容易地实现这一点,但不幸的是,我必须在windows中使用纯C实现这个程序。我读了几篇文章,说在windows中克隆fork是一件非常痛苦的事情。我曾试图理解createProcess,但在本例中似乎没有这样指出。解决方案可以是实现第二个程序,并通过createProcess和命令行参数将超时传递给它,但如果可能的话,这是我希望避免的解决方案。如果您需要C Windows:生成子进程以停止并重新启动父进程(超时后),c,windows,fork,createprocess,C,Windows,Fork,Createprocess,我必须实现一个程序,除其他外,它必须自杀(响应接收到的命令)并在中止前设置的超时后重新启动;此外,它必须记录重启是由于这种操作。在linux中,使用fork和管理不同的pid可以很容易地实现这一点,但不幸的是,我必须在windows中使用纯C实现这个程序。我读了几篇文章,说在windows中克隆fork是一件非常痛苦的事情。我曾试图理解createProcess,但在本例中似乎没有这样指出。解决方案可以是实现第二个程序,并通过createProcess和命令行参数将超时传递给它,但如果可能的话,
fork()
语义,那么您的选项是:
如果上述方法都不适用于您,那么剩下的唯一选项是使用CreateProcess(),它是spawn(),而不是fork(),然后添加代码以支持所需的fork()功能。命令行可能是最好的解决方案,除非您想使用命名管道并从stdin.Thankx@garr godfrey读取进程