当前位置: 技术问答>linux和unix
求UNIX下C++程序只运行一个实例的方法及范例
来源: 互联网 发布时间:2015-08-03
本文导语: 求UNIX下C++程序只运行一个实例的方法及范例 | 你这个问题很早以前就已经讨论了。 具体的方法: 假设程序运行的时候会生成一个prog.pid文件,内容任意,可以是该进程的PID值 生成以后,程序...
求UNIX下C++程序只运行一个实例的方法及范例
|
你这个问题很早以前就已经讨论了。
具体的方法:
假设程序运行的时候会生成一个prog.pid文件,内容任意,可以是该进程的PID值
生成以后,程序对该文件加锁。
进程启动以后,首先看有没有该文件,如果没有,说明自己是第一个Instance,最后结束的时候不要忘了把该文件删除。
如果有该文件,再检查是否有锁,如果没有,说明该文件是以前的进程创建的,但是中途意外推出,没有将文件删除。
如果有该文件,也有锁,说明不是第一个Instance,退出。
////////////////////////////
其实关于文件的删除,也可以使用unlink,具体的东西,你自己去查吧,懒得说了。
具体的方法:
假设程序运行的时候会生成一个prog.pid文件,内容任意,可以是该进程的PID值
生成以后,程序对该文件加锁。
进程启动以后,首先看有没有该文件,如果没有,说明自己是第一个Instance,最后结束的时候不要忘了把该文件删除。
如果有该文件,再检查是否有锁,如果没有,说明该文件是以前的进程创建的,但是中途意外推出,没有将文件删除。
如果有该文件,也有锁,说明不是第一个Instance,退出。
////////////////////////////
其实关于文件的删除,也可以使用unlink,具体的东西,你自己去查吧,懒得说了。