您当前的位置: 首页 > 

使用lockf()保证应用单进程

柳鲲鹏 发布时间:2019-05-15 18:47:50 ,浏览量:0

  领导安排了一个重要且紧急工作。其中一个要点,就是保证进程只有一个。而使用者可以运行多个实例。所以唯一办法就是在程序中互斥。怎么互斥?

  互斥锁。

  网络端口。

  文件锁。

  考虑到进程会崩溃,需要再启动,所以互斥锁方案不能用。网络端口绑定可以使用,文件锁也可以。考虑到私密性,吾决定使用文件锁。

 

  代码如下:

#define LOCK_FILE     "./process.lock"

bool isRunningNow()
{
    int fd = open(LOCK_FILE, O_RDONLY | O_CREAT, 0644);
    if (fd < 0)
    {
        return false;
    }

    //测试互斥锁定区域
    return (lockf(fd, F_TLOCK, 0) == 0);
}

 

关注
打赏
1688896170
查看更多评论

柳鲲鹏

暂无认证

  • 0浏览

    0关注

    4641博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0652s