linux进程开发之(九):多进程开发二

748阅读 1评论2010-10-25 andyluo324324
分类:LINUX

#include
#include
#include
#include
#include
#include
#define MAXFILE 65535
int main(void)
{
 pid_t child1,child2;
 int i;
 child1=fork();//创建子进程1
 if(child1==-1)//出错判断
 {
  perror("child1 fork");
  exit(1); 
 }
 else if(child1>0)//如果运行在父进程就退出
 {
  exit(0);
 }
 openlog("exc2_info",LOG_PID,LOG_DAEMON);//打开日志服务
 setsid();//下面就开始编写守护进程
 chdir("/");
 umask(0);
 for(i=0;i {
  close(i);
 }
 child2=fork();//创建子进程2
 if(child2==-1)
 {
  perror("child2 fork");
  exit(1);
 }
 else if (child2==0)//在日志中写入字符串
 {
  syslog(LOG_INFO,"child2 will sleep for 10s");
  sleep(10);
  syslog(LOG_INFO,"child2 is going to exit !");
  exit(0);
 }
 else
 {
  waitpid(child2,NULL,0);//关闭日志服务
  syslog(LOG_INFO,"child1 noticed that child2 has exited");
  closelog();
  while(1)
  {
   sleep(10); 
  } 
 }
}
上一篇:linux进程开发之(八):多进程程序开发一
下一篇:linux进程通信之(一):管道

文章评论