gpt4 book ai didi

c - 为库函数定义 errno 值

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:15 24 4
gpt4 key购买 nike

我正在编写一个小型库来处理与 rs232 设备的通信。

大多数函数在描述符中写入几个字节,等待回复,分析并返回:

int demo_function(int fd)
{
if (sendcommand(command)==0)
{
if (getreply(buffer)==0)
{
if (buffer == ACK)
return 0; //Success, returns 0
else if (buffer == NACK)
return -1; //Error, Nack received
else
return -1; //Error, unexpected answer
}
else
return -1; //Error, Timeout
}
else
return -1; //Error, send failled.
}

我想尽可能地遵循标准,所以我在成功时返回 0,在错误时返回 -1。我需要定义我应该在 errno 中设置的值。

-Nack 收到:我找不到适合这种情况的任何错误。

-意外的答案:EBADMSG。

-超时:ETIME 或 ETIMEDOUT。

-发送失败:EIO?

我应该为 NACK 情况使用什么错误,其他情况下的错误编号是否合适?或者我应该远离 errno 并找到另一种报告错误的方法(比如不同的返回值)?

最佳答案

the standard获取 errno 的列表。就个人而言,我会远离 errno,并使用单独的参数等。

在您的情况下,该函数不会返回任何有用的信息,因此您可以使用返回值作为成功 (0) 或错误类型 (!0) 的指示。

关于c - 为库函数定义 errno 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914248/

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