Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1750053
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类: C/C++

2011-07-11 08:58:24

  1. void init_daemon()  
  2. {  
  3.     int pid;  
  4.     int i;  
  5.       
  6.     if(pid=fork())  
  7.     exit(0);//是父进程,结束父进程  
  8.     else if(pid< 0)  
  9.     exit(1);//fork失败,退出  
  10.     //是第一子进程,后台继续执行  
  11.   
  12.     setsid();//第一子进程成为新的会话组长和进程组长  
  13.     //并与控制终端分离  
  14.     if(pid=fork())  
  15.     exit(0);//是第一子进程,结束第一子进程  
  16.     else if(pid< 0)  
  17.     exit(1);//fork失败,退出  
  18.     //是第二子进程,继续  
  19.     //第二子进程不再是会话组长  
  20.   
  21.     for(i=0;i< NOFILE;++i)//关闭打开的文件描述符  
  22.     close(i);  
  23.     //chdir("/tmp");//改变工作目录到/tmp  
  24.     umask(0);//重设文件创建掩模  
  25.       
  26.     return;  


阅读(937) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~