Здравствуйте. Помогите, пожалуйста, со следующим вопросом.
Пишу простого демона.
int main() {
int pid = 0, ppid = 0;
ppid = fork(); //1
if(ppid<0)
exit(1);
chdir("/"); //2
pid = setsid();//3
//4
demon();
printf("%d\n", pid);
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
return 0;
}
И хочу вывести его PID. Но
printf("%d\n", pid) Выводит мне, почему-то, 2 числа: PID родителя и 1.
Отсюда следует два вопроса. Почему мне выводится 2 числа, хотя
printf("%d\n", pid) один? Что я делаю неправильно при создании демона?