CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

怎样使程序只运行一个实例

楼主thethefighter(龙卷风)2006-03-18 11:50:38 在 Linux/Unix社区 / 程序开发区 提问

怎样使程序在unix/linux环境下只运行一个实例?  
  在windows环境下可以使用:  
  方法一:  
  在IninInstance()函数加入如下代码:        
  HANDLE       hObject       =       CreateMutex(NULL,FALSE,"SingleInstance");  
  if(GetLastError()       ==       ERROR_ALREADY_EXISTS)  
  {  
  CloseHandle(hObject);  
  AfxMessageBox("程序已经运行!");  
  return       FALSE;  
  }  
  方法二,使用编译器来实现,较复杂一点  
  使用#pragma       data_seg编译指令,共享一个全局变量 问题点数:20、回复次数:8Top

1 楼fierygnu(va_list)回复于 2006-03-18 23:59:52 得分 5

用文件的咨询锁。参考APUE。Top

2 楼thethefighter(龙卷风)回复于 2006-03-19 10:08:32 得分 0

unix   的Mutex是系统级的吗,  
  能不能用windows类似CreateMutex的方法,  
  来判断ERROR_ALREADY_EXISTS。  
  Top

3 楼lbaby(春天来了...)回复于 2006-03-19 17:41:58 得分 5

文件锁,这是标准用法  
   
  Top

4 楼lanying(蓝鹰)(问个不休)回复于 2006-03-19 18:09:45 得分 5

方法多了,文件锁,信号灯,pid文件   ...Top

5 楼thethefighter(龙卷风)回复于 2006-03-19 19:16:08 得分 0

使用文件锁时,程序当掉时,可以自动解锁,  
  用信号灯的话,信号灯可以自动归0吗?Top

6 楼lanying(蓝鹰)(问个不休)回复于 2006-03-19 20:08:22 得分 0

信号灯确实有down掉后,无法释放的问题Top

7 楼alaiyeshi(七宝树八宝饭)回复于 2006-03-20 08:53:11 得分 5

关于down掉的这些异常,我以前是把信号接管了,然后在里面,嘿嘿,把锁解开Top

8 楼fierygnu(va_list)回复于 2006-03-20 13:30:00 得分 0

SIGKILL无法接管:)Top

相关问题

  • 怎样让VB程序只运行一个程序实例呢
  • 怎样让我的MFC程序只能运行一个实例?
  • 怎样在程序运行前判断是否有已运行的实例?
  • 如何让程序单实例运行?
  • 只运行一个JAVA程序实例
  • 怎样让程序重复运行时自动转到已有的实例中(简单点儿)?
  • 怎样让一个程序始终有一个实例在系统中运行?(高分)
  • 怎样实现程序只有一个实例在运行,而不启动多个?
  • 怎样保证任意时刻只有我的一个程序实例在运行?
  • 怎样使程序只运行一个实例,并且当用户打开文件产生程序实例时自动用本程序的第一个实例打开

关键词

  • 信号灯
  • 文件
  • 运行
  • 程序
  • 方法
  • 使用

得分解答快速导航

  • 帖主:thethefighter
  • fierygnu
  • lbaby
  • lanying
  • alaiyeshi

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo