gpt4 book ai didi

c - 带有 MinGW-w64 的 strerror

转载 作者:可可西里 更新时间:2023-11-01 13:45:15 32 4
gpt4 key购买 nike

采用这个简单的程序

#include <stdio.h>
#include <string.h>
#include <errno.h>

int
main (void)
{
printf ("ERROR %d %s\n", ETIMEDOUT, strerror (ETIMEDOUT));
return 0;
}

如果你用 Cygwin gcc 编译它,它运行良好

$ gcc a.c

$ ./a
ERROR 116 Connection timed out

如果你用 MinGW-w64 gcc 编译它,它不会给出正确的错误信息

$ i686-w64-mingw32-gcc a.c

$ ./a
ERROR 138 Unknown error

如何让 MinGW-w64 放置正确的错误消息?

最佳答案

ETIMEDOUT 似乎是一个 POSIX ISO C 标准 errno.h 的扩展。 Cygwin 比 MinGW 对 POSIX 的支持更好。关于 mingw32 的 ETIMEDOUT 的错误报告已在 2007 中打开和关闭.

一种选择是使用 GNU 可移植性库 (Gnulib)。它提供了一个类似 POSIX 的 errno.hstrerror()/strerror_override() .

关于c - 带有 MinGW-w64 的 strerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13523532/

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