互斥量的定义和在C中的使用

| 我正在使用C编写程序。我想拥有一个互斥锁,该互斥锁可以帮助我在程序的第一个实例丢失或停止工作时运行程序的新实例。 我不知道如何开始... 任何帮助都将非常棒。
已邀请:
如果使用Windows,则使用CreateMutex创建一个命名互斥体。如果要运行的第一个实例不存在,则将其创建并锁定。其他实例将无法使用WaitForSingleObject获得互斥锁的所有权,并应终止。 在类似Unix的系统上,通常将第一个实例的PID写入锁定文件。然后,其他实例将检查该文件与当前正在运行的程序。这有点复杂,并且不使用互斥体。 看来我误解了您的问题,上面的散文却恰恰相反:确保一次只运行一个实例。如果过程挂起或失败,则重新启动过程会更加复杂。我建议使用一个程序来启动您的应用程序并从外部监视其运行状况。然后,启动程序可以在检测到问题时启动新实例。确切的过程高度依赖于您的平台。
您创建一个小循环来启动程序。因此,如果崩溃,它将重新启动程序。 在linux中,您可以通过简单的bash脚本执行此操作
$ while true; do ./path/my/prog; done
在C语言中,我猜您会写:
while(1) {
    system(\"./path/my/prog\");
}

要回复问题请先登录注册