gpt4 book ai didi

c - C 库应该如何管理错误?

转载 作者:行者123 更新时间:2023-11-30 19:00:41 27 4
gpt4 key购买 nike

我正在创建自己的 C 库,但遇到了困境。

库函数应该返回什么值?

我是否应该拥有自己的 errno 变量,然后函数返回 0 表示成功,返回 -1 表示失败,并将 errno 设置为特定错误? (就像大多数 libc 函数一样)。

或者我应该有一个包含所有错误代码的枚举,然后每个函数都返回特定的错误号?

一方面,我看到第一个方法 (errno) 在许多库中使用,另一方面,我不明白为什么返回 int 的函数应该浪费其整个 4 个字节的返回代码,而只是 0 和 - 1 并使用另一个全局变量来指定错误?为什么不直接返回错误号?

我想更好地了解为什么库使用 errno?我可能在这里遗漏了一些东西。

提前致谢:)

最佳答案

根据我的嵌入式软件开发经验(主要是裸机和低级),errno并不经常使用。

我通常开发的库的函数返回 0 表示成功,返回正值表示错误。不同的错误值可以定义为枚举、宏或其他任何形式。

事实上 0 是成功的值,这使得错误管理很方便:

if ( function(...) )
{
... // handle the error
}

关于c - C 库应该如何管理错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59192170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com