Я пишу библиотеку C для программного проекта. Мне нужно сделать некоторые отчеты об ошибках, но я слишком ленив, чтобы реализовать свой собственный сложный набор кодов ошибок, переменных и функций. Допустимо ли использовать средство errno, предоставляемое libc, для пользовательских отчетов об ошибках? Все мои ошибки подпадают под категории, заданные макросами E...
.
Например, предположим, что мой код включает функцию, которая считывает хэш SHA256 в шестнадцатеричной системе счисления и преобразует его в какой-то внутренний формат. Я хочу использовать errno
для сообщения об ошибках:
#include <errno.h>
int hash_fromstr(hash_t *out, const char *in) {
/* ... */
if (strlen(in) != 65) {
errno = EINVAL;
return -1;
}
/* ... */
}
Конечно, этот пример смехотворно упрощен, на самом деле в других функциях может произойти гораздо больше ошибок.