Как я могу использовать Wexitstatus, чтобы получить значение более 255
Я могу немного говорить по-английски, поэтому я надеюсь, что вы понимаете, что я сказал.
Я разветвляю дочерний процесс, затем делаю ADD в дочернем процессе. Пример: 56+48=104
Если значение ниже 255, я могу использовать "wexitstatus(status)", чтобы получить ответ.
Но если значение выше 256, это будет неправильно!
Как я могу сделать?
1 ответ
Если программа возвращает код выхода> 255, программа просто неверна и должна быть исправлена. Это против стандарта Unix. Если вы не используете стандартный Unix, вам, вероятно, понадобится помощь специалиста из контактов вашей организации.
С manpage для ожидания ():
WEXITSTATUS (stat_val)
Если значение WIFEXITED(stat_val) не равно нулю, этот макрос оценивается как младшие 8 битов аргумента состояния, которые дочерний процесс передал в _exit() или exit(), или значение, которое дочерний процесс возвратил из main().
Он ограничен 8 битами, что означает 1 байт, что означает, что int из WEXITSTATUS может находиться в диапазоне от 0 до 255. Фактически, любая Unix-программа будет возвращать максимум 255.
Кроме того, многие ОС / программы резервируют> 127 для системных обозначенных кодов, так что вам даже не нужно ничего использовать выше этого.
Если вам нужно больше кодов возврата, чем 126 (поскольку 0 не является ошибкой), попробуйте записать его в STDOUT и перехватить его.