Работя върху някои неща, използвайки 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)
и сега създавам само едно дете. Искам обаче да знам дали това е правилна практика или просто превръзка. Това ли е правилното нещо. Как едно дете трябва да "спре", когато е готово?