gpt4 book ai didi

c - C中互斥量的定义和使用

转载 作者:行者123 更新时间:2023-11-30 18:06:16 24 4
gpt4 key购买 nike

我正在使用 C 编写一个程序。我想要一个互斥体,它可以帮助我运行程序的新实例,以防我的程序的第一个实例丢失或停止工作。

我不知道如何开始...任何帮助都会非常好。

最佳答案

如果您使用的是 Windows,则创建 named mutexCreateMutex 。如果互斥体尚不存在,则第一个运行的实例将创建该互斥体并锁定它。其他实例将无法使用WaitForSingleObject获得互斥锁的所有权。并且应该终止。

在类 Unix 系统上,通常会写入第一个实例的 PID到锁定文件。然后其他实例将检查该文件与当前正在运行的程序。这有点复杂,并且不使用互斥体。

<小时/>

看来我有点误读了你的问题,上面的散文解决了相反的问题:确保一次只运行一个实例。如果进程挂起或失败,则重新启动进程会更加复杂。我建议使用一个程序来启动您的应用程序并从外部监控其运行状况。然后,启动器可以在检测到问题时启动新实例。确切的过程很大程度上取决于您的平台。

关于c - C中互斥量的定义和使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5716002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com