Linux学习之系统编程篇:编写一个守护进程
需求:写一个守护进程,每隔 2s 获取一次系统时间,将这个时间写入到磁盘文件
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
void func(int num) // 回调函数
{// 将当前时间写入磁盘time_t curtime; //传出参数time(&curtime); //获取当前时间curtimechar *pt = ctime(&curtime); //格式化时间int fd = open("/home/ubuntu/1.txt", O_CREAT | O_WRONLY | O_APPEND, 0664);write(fd, pt, strlen(pt)+1);close(fd);
}
int main()
{pid_t pid = fork();if(pid > 0){exit(1); // 1.创建子进程,父进程退出}else if(pid == 0){setsid(); // 2.子进程创建会话chdir(“/home/ubuntu”); // 3.改变工作目录umask(0); // 4.改变掩码close(0); // 5.关闭文件描述符
close(1);
close(2); // 6.执行核心操作
// 6.1 信号捕捉 注意:先捕捉,后发信号struct sigaction act;act.sa_flags = 0;act.sa_handler = func;sigemptyset(&act.sa_mask);sigaction(SIGALRM, &act, NULL);// 6.2 设置定时器,发送待捕捉的信号struct itimerval val = {{2,0},{1,0}};setitimer(ITIMER_REAL, &val, NULL); while(1); // 让守护进程一直存活}return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
