http://www.unixguide.net/unix/programming/1.1.3.shtml
ался выяснить, как механизм fork-exec используется в Linux. Все шло по плану, пока некоторые веб-страницы не начали меня смущать.
Говорят, что дочерний процесс должен строго использовать_exit()
вместо простогоexit()
или нормальный возврат изmain()
.
Как я знаю, оболочка Linux выполняет все внешние команды; предполагая, что то, что я сказал выше, является правдой, можно сделать вывод, что ни одна из этих внешних команд, ни какое-либо другое выполнение, происходящее внутри оболочки Linux, не может выполнить нормальный возврат!
Википедия и некоторые другие веб-страницы утверждают, что мы должны использовать_exit()
просто чтобы предотвратить дочерний процесс, вызывающий удаление временных файлов родителя, в то время как возможна двойная очистка буферов stdio. хотя я понимаю первое, я понятия не имею, как двойная очистка буферов может быть вредна для системы Linux.
Я провел весь день на этом ... Спасибо за любые разъяснения.