您好,欢迎访问三七文档
实验五守护进程实验目的1.掌握守护进程的特点2.掌握守护进程的程序设计方法。实验内容编写一程序,要求运行后成为守护进程,复制守护进程的子进程,子进程往某个文件(如test.txt)里写入字符串“测试守护进程:当前系统时间”。父进程等待子进程终止后向系统日志文件“/var/log/syslog”写入“子进程终止:当前系统时间”结束,守护进程的错误信息输出到系统日志文件。请把产生守护进程的部分分割成独立的程序文件。提示使用openlog函数和syslog,closelog函数。要求:1.守护进程两个源程序文件代码//daemon.c#includestdio.h#includestdlib.h#includesys/types.h#includeunistd.h#includesys/wait.h#includesyslog.h#includesignal.h#includesys/param.h#includesys/stat.hvoidinit_daemon(void){pid_tchild0;inti;openlog(实验五5程序信息,LOG_PID,LOG_DAEMON);closelog;child0=fork();if(child00)exit(0);elseif(child00){syslog(LOG_INFO,创建守护进程失败);exit(1);}setsid();chdir(/Home);umask(0);for(i=0;iNOFILE;++i)close(i);return;}//init_daemon.c#includestdio.h#includestdlib.h#includesys/types.h#includeunistd.h#includesys/wait.h#includesyslog.h#includesignal.h#includesys/param.h#includesys/stat.hvoidinit_daemon(void);intmain(){FILE*fp;pid_tchild;init_daemon();openlog(实验5程序信息,LOG_PID,LOG_DAEMON);child=fork();if(child0){syslog(LOG_INFO,创建子进程失败);exit(-1);}elseif(child==0){while(1){sleep(5);if((fp=fopen(test.txt,a+))0){fprintf(fp,测试守护进程\n);fclose(fp);}elsesyslog(LOG_INFO,打开文件失败);}}else{waitpid(child,NULL,0);while(1);{sleep(10);}}closelog();}2.查看子进程文件test.txt和系统日志文件/var/sys/syslog(可用命令tail–f/var/sys/syslog查看)的截图。
本文标题:实验5
链接地址:https://www.777doc.com/doc-5055489 .html