首页 > 系统服务 > 详细

多进程——守护进程例子

时间:2018-09-02 23:27:58      阅读:242      评论:0      收藏:0      [点我收藏+]

要求,创建守护进程,每隔两秒向文件daemon.txt中写入当前时间

 

 1 #include"my.h"
 2 #include<stdio.h>
 3 #include<time.h>
 4 #include<string.h>
 5 #include<fcntl.h>
 6 #include<sys/stat.h>
 7 
 8 int main(){
 9 
10     pid_t pid;
11     int i,fd;
12     //char *buf="this is daemon\n";
13     char buf[128]={0};
14     time_t t;
15 
16     pid=fork();
17     if(pid<0){
18     
19         perror("fork error");
20         exit(1);
21     }
22     else if(pid>0){
23     
24         
25     //printf("#######################");
26         exit(0);
27     }
28     printf("#######################");
29     setsid();
30     chdir("/tmp");
31     umask(0);
32     for(i=0;i<getdtablesize();i++){
33     
34         close(i);
35     }
36     while(1){
37     
38         if((fd=open("daemon.txt",O_CREAT|O_WRONLY|O_TRUNC,0600))<0){
39         
40             perror("open file error\n");
41             exit(1);
42         }
43 
44         time(&t);
45         sprintf(buf,"time=%s",ctime(&t));
46         write(fd,buf,strlen(buf));
47         close(fd);
48         sleep(3);
49     }
50     exit(0);
51 }

 

 

技术分享图片

 

错误分析:

(1)缺少头文件sys/wait.h  导致umask()报错;

(2)创建daemon.txt是路径缺省,本来以为是在和daemon.c一个文件夹错误,是在第三部chdir()创建的工作目录/tmp下。

(3)printf("############"), 不会显示的原因,已经脱离当前中断所以不会显示

多进程——守护进程例子

原文:https://www.cnblogs.com/lanbofei/p/9575410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!