问题标签 [errno]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5770 浏览

c - Using errno for application / library error reporting

I'm writing a C library for a software project. I need to do some error reporting, but I'm a little bit too lazy to implement my own complex set of error-codes, variables and functions. Is it acceptable to use the errno facility provided by the libc for custom error reporting? All my errors fit into the categories given by the E... macros.

For instance, let's say my code includes a function that reads a SHA256 hash in hexdecimal notation and converts it into some sort of internal format. I want to use errnoto report errors:

Of course this example is ridiculously simplified, in reality much more errors may happen in other functions.

0 投票
1 回答
2221 浏览

debugging - 在 gdb 中的 errno 上设置观察点

我试图找出 errno 何时更改。

一开始我在gdb中尝试了“watch errno”,导致报错

我可以通过使用“-pthread”编译来解决这个问题。但是,它仍然不起作用,我现在收到错误

当我输入“watch errno”时。我需要做什么才能在 errno 上设置观察点?

0 投票
2 回答
1227 浏览

c++ - stdio 是否总是设置 errno?

stdio流遇到错误(但不是 EOF)时,将设置流的错误指示符,以便ferror()返回非零值。我一直认为更多信息可在errno. 但是我怎么知道呢?

一些功能的文档[例如man fopen在 Linux 下] 说也errno将被设置。不过man fgets完全没提errno。glibc 信息页面令人放心:

除了设置与流相关的错误指示符之外,对流进行操作的函数也设置 `errno' 的方式与对文件描述符进行操作的相应低级函数相同。

但我不知道这个保证有多强。是C标准要求的吗?在 Visual C/C++ 中会发生什么?

0 投票
0 回答
141 浏览

c - sendto() 失败,断开 telnet 连接并阻止程序

我已经被这个问题困扰了好几天,我真的不知道这是从哪里来的。

我正在做一个通过 UDP 通信的程序。我正在使用该sendto()方法在程序之间进行通信。此外,还有一个用户打开和使用的 UI TCP 套接字,通过 telnet 管理程序。telnet 部分 100% 与程序的其他功能一起工作。

问题是,当我使用该sendto()方法时,程序完全阻塞并且 Telnet 连接断开(通信已被主机切断,它说)。我的问题是,当程序阻塞时,我无法弄清楚为什么sendto()会失败,因为它不会执行后面的内容。即使有类似的东西:

没有任何反应,我无法获得任何信息errno。telnet 连接中断的事实对我来说似乎很奇怪,因为它位于一个非常不同的端口上,因此不应该像这样中断。我试图将我的 UDP 套接字设置为非阻塞,但它仍然不起作用。这是代码的非工作部分:

提前感谢您的帮助,如果您需要更具体的信息,请询问我。

0 投票
2 回答
508 浏览

c++ - set_new_handler 和 errno

如果你使用set_new_handler并且你的处理函数被调用,errno保证被设置,它是从 0 返回的方式malloc?还是更好用strerror(ENOMEM)errno适用于 Microsoft C++ 和 GCC,但这仍然存在是否得到保证的问题。

0 投票
1 回答
1057 浏览

c++ - 调用 fdopen() 后出现 Errno 22

调用时出现错误fdopen,它设置errno为 22。我正在使用 exec 命令调用子进程。子进程调用fdopen文件描述符 4。第一个子进程工作并将数据发送回父errno进程,为 0。父进程创建下一个子进程后,fdopen(4, "w");再次调用,此时errno设置为 22。

根据我的阅读,errno22 forfdopen()可能意味着模式参数不正确。我还读到这可能是一个错误fnctl,这可能意味着文件描述符错误。我指定文件描述符 4,它适用于第一个子进程。这可能errno是我尝试创建另一个时设置为 22 的原因FILE*吗?

我无法弄清楚它何时适用于一个子进程,但不适用于下一个。任何人都可以为我阐明这一点吗?

这是代码:

0 投票
2 回答
1035 浏览

mysql - 无法创建表错误号 150

这是我的 SQL 脚本

我没有看到任何语法错误。一切看起来都很好。我的数据库引擎是 innoDB。但我怎么一直收到这个错误?

它没有显示错误所在的行。

0 投票
2 回答
1219 浏览

c - lseek EOVERFLOW 错误处理

我注意到当我尝试寻找比 off_t 更多的字节时,我得到一个 EOVERFLOW 错误。我怎样才能在 off_t 中寻找比更大的数字更多的东西?

0 投票
1 回答
2014 浏览

gdb - 在 GDB 中打印 `errno` 名称而不是值

我想知道是否有任何方法可以errno在 GDB 中打印符号名称而不仅仅是一个数字。例如,而不是

我想看到类似的东西

0 投票
4 回答
10287 浏览

c - 为什么 open() 失败并且没有设置 errno?

在我的代码open()中失败,返回码为 -1,但不知何故errno没有设置。

输出是

为什么没有设置errno?我如何确定open()失败的原因?