首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有MinGW-w64的strerror

带有MinGW-w64的strerror
EN

Stack Overflow用户
提问于 2012-11-23 13:26:03
回答 1查看 1.1K关注 0票数 6

以这个简单的程序为例

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
#include <errno.h>

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

如果你用Cygwin编译,那么它运行的很好

代码语言:javascript
复制
$ gcc a.c

$ ./a
ERROR 116 Connection timed out

如果您使用MinGW-w64编译,则不会给出正确的错误消息

代码语言:javascript
复制
$ i686-w64-mingw32-gcc a.c

$ ./a
ERROR 138 Unknown error

如何让MinGW-w64放入正确的错误信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-23 14:30:38

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13523532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档