守护进程实例

该实例建立了一个守护进程,然后让该守护进程每隔5s在“/tmp/dameon.log”中写入一句话。

#include<sys/types.h>
#include<unistd.h>
#include<sys/wait.h>
#define MAXFILE 65535
int main()
{
    pid_t pc;
    int i,fd,len;
    char *buf="This is a Dameon\n" ;
    len=strlen(buf);
    /*父进程退出*/
    pc=fork();
    if(pc<0){
        printf("error fork\n");
        exit(1);
    }else if(pc>0)
    exit(0);
    /*在子进程中创建*/
    setid();
    /*改变当前目录为根目录*/
    chdir("/");
    /*重设文件权限掩码*/
    umask(0);
    /*关闭文件描述符*/
    for(i=0;i<MAXFILE;i++)
        close;
    /*这时创建完守护进程,以下开始正式进入守护进程工作*/
    while(1){
    if=((fd=open("/tmp/dameon.log",O_CREAT|O_WRONGLY|O_APPEND,0600))<0){
        perror("open");
        exit(1);
    }
    write(fd,buf,len+1);
    close(fd);
    sleep;
    }
}
原文地址:https://www.cnblogs.com/junzhkevin/p/1971777.html