#include<unistd.h>
#include<stdio.h>
#include<pwd.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<sys/wait.h>
int main()
{
pid_t pid ;
pid = fork();//创建子进程
if(pid < 0)
{
perror("创建子进程失败");
return -1;
}
else if(pid > 0)//结束父进程
{
_exit(0);
}
else
{
//关闭三个文件描述符
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
umask(0);//重设umask
if(setsid()<0)//setsid()自己独立建一个进程组(和一个会话)
{
perror("setsid");
return -1;
}
for(;;)//为了演示效果
{}
}
}模拟daemon函数
最新推荐文章于 2025-09-22 15:26:11 发布
本文展示了一个使用C语言创建后台进程的示例代码。通过fork()、setsid()等系统调用实现进程脱离终端,关闭标准输入输出错误,并设置新的进程组ID。此示例适用于学习如何让程序作为守护进程运行。
9703

被折叠的 条评论
为什么被折叠?



