ソフトウェア プロジェクト用の C ライブラリを作成しています。エラー報告を行う必要がありますが、エラー コード、変数、および関数の複雑なセットを独自に実装するのが少し面倒です。libc が提供するカスタム エラー報告用の errno 機能を使用することは許容されますか? E...
私のすべてのエラーは、マクロによって指定されたカテゴリに当てはまります。
たとえば、コードに SHA256 ハッシュを 16 進数表記で読み取り、それをある種の内部形式に変換する関数が含まれているとします。errno
エラーを報告するために使用したい:
#include <errno.h>
int hash_fromstr(hash_t *out, const char *in) {
/* ... */
if (strlen(in) != 65) {
errno = EINVAL;
return -1;
}
/* ... */
}
もちろん、この例は非常に単純化されています。実際には、他の関数でさらに多くのエラーが発生する可能性があります。