守护进程:完全脱离控制台
后台进程:未完全脱离控制台
区别:在于标准文件句柄是否绑定到控制台。
但是后台进程需要输入“进程转到后台”命令使之进入后台,而题目要求是运行后就自动进入后台。
采取的办法是fork子进程,中止父进程,让子进程代替父进程完成后续操作。
经测试,这个方法可以实现:
int main(int argc, char** argv)
{
//1.1
pid_t pid = fork();
if (pid == -1) {
printf("error fork!\n");
return 0;
}
else if (pid > 0) {
exit(0); //父进程退出
}
else//子进程
{
while (1)sleep(1);
}
return 0;
}