进程互斥----ttylock()类似原理实现
来源:互联网 发布:删除列sql语句 编辑:程序博客网 时间:2024/06/08 07:48
之前帮朋友看了一下代码,他想用ttylock(),ttyunlock()系列函数去锁定/dev/ttyS0,但是编译时找不到这些函数,后来我发现这个函数是AIX上的,后来看了一下他的原理。
故按其原理实了如下函数:用以在进程启动时杀掉已经启动的相同进程。
int check_lock(char*file){FILE*fd;int bpid;fd=fopen(file,"r");if(fd==NULL){if(errno==2){fd=fopen(file,"w+");if(fd==NULL){ return -1;}}return -1;}fscanf(fd," %d",&bpid);fclose(fd);if(bpid!=getpid()){if(kill(bpid,0)==0){return bpid; ////有进程已经运行}return 0; //no locked}return 1;//our locked}int write_lock(char*file){FILE*fd;int bpid=check_lock(file);if(bpid>1){if(0!=kill(bpid,9)){ //强制杀死进程return -1;}sleep(1); //进程消失还要延迟一会}fd=fopen(file,"w");if(fd==NULL){return -1;}fprintf(fd," %10d\n",getpid());fclose(fd);return 0;}
- 进程互斥----ttylock()类似原理实现
- 浅谈两种方法实现进程互斥的原理
- windows实现进程互斥
- FileLock实现进程互斥
- 操作系统原理读书笔记之进程互斥
- android中的进程互斥实现
- 利用Swap指令进程互斥实现
- 进程互斥问题
- 同名进程互斥
- 进程互斥
- 进程同步 & 互斥
- 进程互斥
- 进程互斥
- 进程互斥
- 进程互斥问题
- 容斥原理二进制实现
- 进程(线程)互斥的软件实现--皮特森(Peterson)算法
- 用java实现管程,解决进程互斥问题
- 练习赛14.1,。集合的划分
- JAVA基础核心,早年的总结,今天分享
- int 不能转换为short
- Windows下使用Python读取Excel表格数据
- NYOJ-845-无主之地1-2013年11月3日00:08:18
- 进程互斥----ttylock()类似原理实现
- ZZ: linux IPV4 IPV6 sockaddr 几个结构体及其关系: sockaddr sockaddr_in sockaddr_in6
- WinForm中CheckListBox控件的应用
- Ubuntu 升级、卸载内核、安装VmTools
- NSString的常用方法
- 关于共享内存的一个题目(未完)
- Android 下用 Pull 解析和生成 XML
- 山东理工大学ACM平台题答案 1121 C语言实验——for循环打印图形(循环结构
- 第三周 看struts2的一周 混日子的一周- -