Можно ли использовать EXIT_SUCCESS / EXIT_FAILURE для отчетов об ошибках внутри программы? - PullRequest
0 голосов
/ 01 февраля 2019

Допустим, у меня есть программа, в которой у меня есть глобальная переменная, похожая на errno (названная project_error), в которой я храню точные ошибки, которые произошли в прошлом, но я также хочу, чтобы функции возвращали простое ОК /Состояние NOK для упрощения обработки ошибок, так что я проверяю только project_error, если возвращается NOK.

Это нормально, если я использую стандартные макросы, определенные в <stdlib.h>, или лучше определить мой собственный, потому чтообычно это означает, что вы действительно вышли из программы?

Возможно, это основано на мнении, но я хотел бы знать, существует ли какой-либо де-факто стандарт или обычная практика.

Возвращенные ошибкитаким способом могут быть безвредные ошибки типа «ввод за пределы», которые просто отклоняют ввод пользователя и повторный запрос, или фатальные ошибки, которые требуют, чтобы вызывающий объект очистил, поставил предупреждение и завершил работу.Это решается чтением глобальной переменной, а не возвращаемого значения.

1 Ответ

0 голосов
/ 01 февраля 2019

Как вы говорите, EXIT_SUCCESS (0) и EXIT_FAILURE (1) - это макросы, определенные в stdlib, которые в системах POSIX устанавливаются в эти целые для вызывающего родительского процесса, чтобы просто получить смутное представление о состоянии выхода из программы ( glibcссылка ).Я бы сказал, что, поскольку это для вашего внутреннего использования, читателю будет сложно запутаться, если вы будете использовать эти точные значения.лучше определите свои собственные имена, чтобы сделать ваши намерения использовать эти ошибки только внутренне понятными.

edit: поскольку комментаторы правильно определяют фактические целочисленные значения, которые я пишу в скобках выше, как таковые в системах POSIX.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...