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 + -
显示快捷键?