我正在寻找一种健壮的方式来报告C库中的错误。考虑一个简单的队列示例:
struct queue *q = malloc(sizeof(*q));
if (NULL == q) {
/* malloc failed. now what ? */
return NULL; /* maybe ? */
}
好的,对于这个例子,返回NULL
是无效的,所以返回它来表示一个错误是有意义的。但
void *get_data()
{
/* stuff */
/* Error detected. NULL is a valid return, now what ? */
/* stuff */
}
更重要的是,一旦我们发出错误信号,如何发出错误信号?我已经考虑过了,但没有一个令人满意的解决方案。
使用errno
或其他全局对象的
errno
相当难看。那么你对这个主题有什么看法?如何以干净的方式报告错误?
https://stackoverflow.com/questions/6548749
复制相似问题