Использование fork objc - PullRequest
       22

Использование fork objc

0 голосов
/ 19 декабря 2018

При обнаружении взломанного устройства, почему большинство примеров завершают работу приложения в случае сбоя процесса fork?Разве это не означает, что устройство не взломано, поэтому все в порядке, без дочерних процессов?

int pid = fork();
if (!pid){
    exit(0);
}
if (pid >= 0) {
    return YES;
}

1 Ответ

0 голосов
/ 19 декабря 2018

PID 0 не означает, что вилка не удалась.Это означает, что ответвление выполнено успешно и текущий процесс является дочерним.PID> 0 означает, что ответвление выполнено успешно, а текущий процесс является родительским (возвращаемое значение - это PID дочернего элемента).PID -1 означает, что произошел сбой.

Поскольку процессам приложения обычно запрещено разветвление, -1 означает ожидаемый результат.Если fork разрешено, то есть два процесса.Родитель возвращает YES, а дочерний завершается, так как на самом деле он не нужен ни для чего, кроме проверки, разрешен ли разветвление.

...