Я работаю над некоторыми вещами, используя fork()
в C. Это мой первый контакт с концепцией разветвления процессов.
В общем, у меня что-то вроде этого:
int pid;
pid = fork();
if (pid < 0) {
fprintf(stderr, "Fork Failed");
exit(-1);
} else if (pid == 0) {
fprintf(stderr, "Inside child %d\n", getpid());
// do some other stuff
exit(0);
} else {
fprintf(stderr, "Inside parent %d\n", getpid());
}
Раньше я не ставил exit(0)
в код дочернего процесса. Я получал, казалось бы, тонны повторяющихся процессов. Я добавил exit(0)
, и теперь я создаю только одного ребенка. Тем не менее, я хочу знать, является ли это правильной практикой или просто пластырем. Правильно ли это делать. Как ребенок должен «остановиться», когда все сделано?