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