易截截图软件、单文件、免安装、纯绿色、仅160KB

LINUX守护进程


int Daemon(char* szExecName = NULL)
{
 int res = 0;
 pid_t pc;
 pc = fork();
 if(pc < 0)
 {
  fprintf(stderr,"ERROR_Deamon()_fork(): failed!");
  return -1;
 }
 else if(pc == 0) //sub process
 {
 }
 else if(pc > 0)  //parent process
 {
  fprintf(stderr,"parent process exit!\n");
  sleep(2);
  exit(0);
 }
 res = setsid();
 if(res == -1)
 {
  fprintf(stderr,"ERROR_Deamon()_setsid(): errno = %d\n", errno);
  return -1;
 }
 if(pc=fork())
  exit(0);//是第一子进程,结束第一子进程
 else if(pc< 0)
  exit(1);//fork失败,退出
 //是第二子进程,继续
 //第二子进程不再是会话组长
 // for maybe its path is not current path when run.
 char szModulePath[MAX_PATH] = {0};
 GetModuleFileName(szExecName, szModulePath, sizeof(szModulePath));
 res = chdir(szModulePath);
 if(res == -1)
 {
  fprintf(stderr,"ERROR_Deamon()_chdir(): path = %s, errno = %d\n", szModulePath, errno);
  return -1;
 }
 umask(0);
 //for(int i = 0; i < MAXFILE; i++)
// {
  //close(i);
 //}
 return 0;
}Dstlen)
  *szTmp = '\0';
 return i;
}
1.获取程序运行的绝对路径
int GetModuleFileName(char* sModuleName, char* sModulePath, int nSize)
{
 int ret = -1;
 char* p = getenv("_");
 if(p != NULL && strstr(p, sModuleName) != NULL)
 {
  realpath(p, sModulePath);
  char* p = strrchr(sModulePath, '/');
  p[1] = '\0';
  ret = 0;
 }
 else
 {
  realpath(sModuleName, sModulePath);
  char* p = strrchr(sModuleP/');
  p[1] = '\0';
  ret = 0;
 }
 return ret;
}


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

Linux中Mount远程目录(自己整理了下)

网上的文章可能不是很全。
下面列出我的操作成功的一个流程
linux
系统
NFS
服务端配置方法如下:
(1)
修改
/etc/exports,
增加共享目录
例如:
  
/export/home/sunky 10.140.133.23(rw)
  
/export/home/sunky1 *(rw)
  
/export/home/sunky2 linux-client(rw)
     /opt/o ......

windows 系统覆盖 linux 系统的解决方案

windows操作系统很霸道,我的机子上原来是安装的RedHat的操作系统,后来由于要装w2003的操作系统,装上了发现,linux的启动时的引
导界面被windows覆盖了,也就是无法用linux系统了,最后在Google上找到了解决方案:
1.插入linux系统的第一张安装盘,按F5进入急救模式。
2.输入:linux rescue   
3.输入 ......

linux 下oracle 的安装(服务端和instant client)

linux 下安装oracle 是一件很令人头疼的事情,我把自己的安装步骤拿出来给大家分享一下。
一.linux服务端的安装.
1.下载oracle服务端软件,下载网址如下
http://www.oracle.com/technology/software/products/database/index.html
我选择的版本是:Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86-64
  ......

在Linux中创建静态库和动态库


感谢原文作者:http://blog.csdn.net/thinkerABC/archive/2006/03/11/621817.aspx
感谢转帖者的排版:http://blog.chinaunix.net/u3/101219/showart_2006014.html
 
 
我们通常把一些公用函数
制作成函数库,供其它程序使用。
函数库分为静态库和动态库两种。
静态库在程序编译时会被连接到目标代码中, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号