init.c

来自「本软件是基于S3C2410串口控制云台的源码」· C语言 代码 · 共 35 行

C
35
字号
// init.c清单 

#include <unistd.h> 
#include <signal.h> 
#include <sys/param.h> 
#include <sys/types.h> 
#include <sys/stat.h> 

void init_daemon(void) 
{ 
int pid; 
int i; 

if(pid=fork()) 
exit(0);//是父进程,结束父进程 
else if(pid< 0) 
exit(1);//fork失败,退出 
//是第一子进程,后台继续执行 

setsid();//第一子进程成为新的会话组长和进程组长 
//并与控制终端分离 
if(pid=fork()) 
exit(0);//是第一子进程,结束第一子进程 
else if(pid< 0) 
exit(1);//fork失败,退出 
//是第二子进程,继续 
//第二子进程不再是会话组长 

for(i=0;i< NOFILE;++i)//关闭打开的文件描述符 
close(i); 
chdir("/tmp");//改变工作目录到/tmp 
umask(0);//重设文件创建掩模 
return; 
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?