У меня вопрос о состоянии выхода из программы в Linux. В моей программе я разветвляю дочерний процесс и вызываю waitpid
, чтобы пожинать его. Когда waitpid
вернется, я хочу проверить состояние выхода моего дочернего процесса. Я обращаюсь к руководству за помощью и обнаруживаю, что второй аргумент waitpid
будет содержать состояние выхода, и я могу использовать макрос WEXITSTATE
для его чтения. Однако этот макрос просто извлекает 8 младших значащих бит из реального состояния выхода, тогда как в руководстве по функции exit(int ret_val)
он будет выходить с ret_val & 0x377
вместо 8 младших значащих бит.
У меня вопрос, где остальные биты? Мы просто бросаем их? Почему Linux использует эту стратегию? Разве эта реализация не создает проблем для нашей программы?
Спасибо и наилучшими пожеланиями.