syslog.c

来自「在一本书上看到的 守护进程的日志实现 程序是课本的讲解例题 拿过来跟大家分」· C语言 代码 · 共 48 行

C
48
字号
#include<stdio.h>#include<syslog.h>#include<stdlib.h>#include<string.h>#include<fcntl.h>#include<sys/types.h>#include<unistd.h>#include<sys/wait.h>#define MAXFILE 65535int main(){	pid_t pc,sid;	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);/*打开系统日志服务,openlog*/	openlog("demo_update",LOG_PID,LOG_DAEMON);	if((sid=setsid())<0){	syslog(LOG_ERR,"%s\n","setsid");	exit(1);	}	if((sid=chdir("/"))<0){	syslog(LOG_ERR,"%s\n","chdir");	exit(1);	}	umask(0);	for(i=0;i<MAXFILE;i++)	close(i);	while(1){/*打开守护进程的日志文件,写入open的日志文件*/	if((fd=open("/tmp/dameon.log",O_CREAT|O_WRONLY|O_APPEND,0600))<0){	syslog(LOG_ERR,"open");	exit(1);	}	write(fd,buf,len+1);	close(fd);	sleep(10);	}	closelog();	exit(0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?