当前位置: 首页 > news >正文

分类网站怎么做项目/海口百度seo公司

分类网站怎么做项目,海口百度seo公司,宁国做网站的公司,网站二维码怎么做的在一些情况下,一个进程只能产生一个实例来执行。Unix环境,提供了文件-记录锁(file- and record-locking)机制,提供了事项单实例进程的基本解决方案。 假如,一个进程在开始运行时,生成了一个文件,并且&…

在一些情况下,一个进程只能产生一个实例来执行。Unix环境,提供了文件-记录锁(file- and record-locking)机制,提供了事项单实例进程的基本解决方案。
 
假如,一个进程在开始运行时,生成了一个文件,并且,对整个文件上锁,并且,只有一个这样的写锁允许生成。
 
如果,后续的进程要试图产生写锁,会导致失败。这暗示了,前面已经有实例运行了。
 

 

 


下面一个判断是否有实例运行的方法。每个实例,都会试图生成一个文件(/var/run/daemon.pid).如果文件已经锁上了,lockfile方法,返回失败,判断函数返回1,表示进程已经运行了。如果没有实例运行,程序,清空文件,写入进程id,返回0.
 
下面为一个实现的程序:
 

#include <unistd.h>   
#include <stdio.h>   
#include <stdlib.h>   
#include <fcntl.h>   
#include <syslog.h>   
#include <string.h>   
#include <errno.h>   
#include <sys/stat.h>   
#define LOCKFILE "/var/run/daemon.pid"   
#define LOCKMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)   
 int already_running(void);   
 int lockfile(int );   
 int main(int argc,char * argv[])   
 {   
     int val = already_running();   
     if(val == 0)   
     {   
         printf("sart to running...\n");   
     }   
     else  
     {   
         printf("alredy running...\n");   
         exit(0);   
     }   
     while(1)   
     {   
         sleep(3);   
         printf("...\n");   
     }   
     return 0;   
 }   
 int already_running(void)   
 {   
     int fd;   
     char buf[16];   
     fd = open(LOCKFILE,O_RDWR|O_CREAT, LOCKMODE);   
     if(fd < 0)   
     {   
         syslog(LOG_ERR, "can't open %s: %s", LOCKFILE, strerror(errno));   
        exit(1);   
     }   
     if(lockfile(fd) < 0)   
     {   
        if (errno == EACCES || errno == EAGAIN)   
         {   
             close(fd);   
             return 1;   
         }   
         syslog(LOG_ERR,"can't lock %s: %s", LOCKFILE, strerror(errno));   
         exit(1);   
     }   
     ftruncate(fd,0);   
     sprintf(buf,"%ld",(long)getpid());   
     write(fd,buf,strlen(buf) + 1);   
     return 0;   
 }   
 int lockfile(int fd)   
 {   
     struct flock fl;   
     fl.l_type = F_WRLCK;   
    fl.l_start = 0;   
    fl.l_whence = SEEK_SET;   
     fl.l_len = 0;   
     return(fcntl(fd, F_SETLK, &fl));   
 } 

 

 

http://www.lbrq.cn/news/1606807.html

相关文章:

  • 做网站多少钱西宁君博领衔/百度竞价排名叫什么
  • flash网站全屏代码/制作自己的网站
  • 做婚礼邀请函网站/seo点击软件
  • mysql开发网站开发/怎样设计一个网页
  • 怎么给网站有一字做标记/seo搜索引擎优化薪酬
  • 一个小胖子从网站做任务的色情故事/短视频推广渠道
  • 怎么让别人看到自己做的网站/重庆seo俱乐部
  • p图软件哪个好用/网站建设优化推广
  • 大良营销网站建设价格/如何提高网站排名seo
  • 关注公众号在哪里查找/手机端关键词排名优化软件
  • 广州网站建设企业/开封网站快速排名优化
  • 网上挣钱/自动app优化下载
  • 陕西网站建设企业/googleplaystore
  • 不知名网站开发/搜索引擎的三个技巧
  • 鄂尔多斯网站建设/可以引流推广的app
  • 温州微网站制作公司哪家好/成都官网seo厂家
  • 自适应网站ui做几套/西安网站制作公司
  • 免费浏览器网站/新媒体运营工作是什么
  • 做商品网站的教学视频教程/seo服务是什么意思
  • 4.9.8wordpress/梅花seo 快速排名软件
  • 荷兰网站后缀/自己做网站的软件
  • 浦江做网站/常州网站优化
  • 微网站怎么做/可以看任何网站的浏览器
  • 深圳福田专业网站建设/关键词搜索工具好站网
  • asp动态网站开发教程负责人/株洲seo优化报价
  • 三亚做网站多少钱一平方/百家号seo怎么做
  • 商务网站建设的流程图/百度推广客户端mac版
  • 鹰潭做网站的公司/seo优化网站网页教学
  • 深圳做微信网站设计/全国疫情最新数据
  • 高端建站设计/2022年seo还值得做吗
  • Python篇---环境变量软件安装
  • Java 大视界 -- Java 大数据在智能教育学习资源个性化推荐与学习路径动态调整中的深度应用(378)
  • 服务器中切换盘的操作指南
  • 数据集-目标检测系列- 地球仪 数据集 globe>> DataBall
  • ubuntu22.04离线一键安装gpu版docker
  • FFmpeg+javacpp中纯音频播放