#include <unistd.h>
int daemon(int nochdir, int noclose);
如果nochdir为零,daemon()将进程的当前工作目录更改为根目录(“/”); 否则,当前工作目录保持不变。
如果noclose为零,daemon()将标准输入,标准输出和标准错误重定向到/dev/null; 否则,不会对这些文件描述符进行更改。(参数为0时有效)
返回值:
deamon()调用了fork(),如果fork成功,那么父进程就调用_exit()退出,因此只能通过子进程看到进一步的错误。如果成功函数返回0,否则返回-1并设置errno。
使用示例: 一个简单的测试用例,隔60s 打印一条提示信息
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
if(daemon(0, 1) == -1)
exit(EXIT_FAILURE);
while(1){
printf("zhangna testing in daemon1\n");
sleep(60);
}
return 0;
}
那么这也就是一个模板:
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
if(daemon(0, 1) == -1)
exit(EXIT_FAILURE);
//编写程序需要做的事情
return 0;
}