Я пишу библиотеку 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;
}
/* ... */
}
Конечно, этот пример смехотворно упрощен, в действительности в других функциях может произойти гораздо больше ошибок.