该实例建立了一个守护进程,然后让该守护进程每隔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; } }