2

VxWorks 提供了一个 strerror_r 版本,它只接受两个参数。

STATUS strerror_r
(
    int errcode, /* error number */
    char *buffer /* string buffer */
)

cURL 提到MAXERRSTR_SIZE.

vxworks 风格的 strerror_r() 确实使用了我们传递给函数的缓冲区。缓冲区大小应至少为 rtsold.h 中定义的 MAXERRSTR_SIZE (150)

但我似乎无法在发行版的任何地方找到文件 rtsold.h。

复制到缓冲区的消息的最大大小是多少?是否在某处定义了#define 或整数常量?

4

1 回答 1

2

备查。在撰写本文时,最大大小为 NAME_MAX,即 255 个字节。请记住终止字节,并传递至少 256 字节的缓冲区以确保安全。(看来我可以在 VxWorks 上查阅 strerror_r 的来源。对不起,我不知道)。

于 2014-04-05T20:07:10.297 回答