|
这是一个创建进程的函数,我的问题是:
1. 这个函数所创建的新进程是否是守护进程?正确吗?
2. 程序执行到default的时候,父进程执行了_exit(pid);后处于什么状态?是否被关闭了?或者根本就终止了,再也不会执行了呢?
3.
int f()
{
int fd;
pid_t pid;
pid = fork();
switch (pid) {
case -1:
return -1;
case 0:
break;
default:
_exit(pid);
}
if (setsid() == -1)
return -1;
chdir("/");
fd = open(_PATH_DEVNULL, O_RDWR, 0);
if (fd != -1) {
dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
dup2(fd, STDERR_FILENO);
if (fd > 2)
close(fd);
}
return 0;
}
谢谢! |
|