本文共 1134 字,大约阅读时间需要 3 分钟。
利用daemon()函数创建守护进程
#include <unistd.h>
int daemon(int nochdir, int noclose);
DESCRIPTION The daemon() function is for programs wishing to detach themselves from the controlling terminal and run in the background as system daemons.If nochdir is zero, daemon() changes the process’s current working
directory to the root directory ("/"); otherwise,If noclose is zero, daemon() redirects standard input, standard output
and standard error to /dev/null; otherwise, no changes are made to these file descriptors.功能:创建一个守护进程
参数:
nochdir:=0将当前目录更改至“/”
noclose:=0将标准输入、标准输出、标准错误重定向至“/dev/null”
返回值:
成功:0
失败:-1
#include#include #include #include #include #include #include #include #define ERR_EXIT(m) \do \{\ perror(m);\ exit(EXIT_FAILURE);\}\while(0);int main(void){ time_t t; int fd; if(daemon(0, 1) < 0) { ERR_EXIT("daemon error"); } while(1) { fd = open("daemon.log", O_WRONLY|O_CREAT|O_APPEND, 0644); if(fd == -1) { ERR_EXIT("open error"); } t = time(0); char *buf = asctime(localtime(&t)); write(fd, buf, strlen(buf)); close(fd); sleep(60); } return 0;}
转载地址:http://glldi.baihongyu.com/