问题标签 [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 投票
1 回答
2116 浏览

ios - iOS 模拟器中的基本套接字编程

我正在学习 Beej 的套接字教程为什么下面的调用socket在 iPhone 模拟器中不起作用?

上述代码的输出是:

错误号 2 是No such file or directory. 我不知道如何解释这个。

0 投票
2 回答
1427 浏览

c++ - strtod 不会在错误的输入上设置 errno

g++ (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1

输入错误时errno保持 0。

编辑:下一步工作正常:

0 投票
2 回答
810 浏览

linux - 如何检查 rmdir 是否返回 EEXIST 或 ENOTEMPTY?

我正在尝试编写一个请求目录的 bash 脚本,然后在确认后删除该目录。我还需要它来告诉用户目录是否不为空,并询问他们是否仍要删除它。

我想我会使用 rmdir 并检查返回值以确保目录被删除,如果不是为什么,但到目前为止我不知道返回值等于 EEXIST 或 ENOTEMPTY。到目前为止,我返回的唯一错误值是 1。

如果目录中有文件,返回值应该是多少?

0 投票
6 回答
17849 浏览

c - 我应该设置errno吗?

我正在编写一个模块,它导出类似于sendand的接口recv

由于这些函数应该分别返回发送和接收的字节数,因此我无法像往常那样进行正确的错误管理(即使用枚举并返回助记符值)。

在这种情况下,我应该errno像标准库那样设置吗?如果是这样,由于errno是线程特定的,是否有特定的书写方式,或者我可以简单地为它分配一个值?

编辑:试验它我注意到errno按分配设置是有效的。仍然:这对于任何系统来说都是安全且便携的吗?

0 投票
2 回答
548 浏览

c++ - 使用 errno 作为 C++ (g++) 中异常的参数的意外控制流(编译器错误?)

当使用 C++ 异常传输 errno 状态时,由 g++ (4.5.3) 生成的编译代码如下所示

相当意外(在 Linux,x86_64 上)

这基本上意味着 errno 作为 C++ 异常的参数几乎没有用,因为在调用 __errno_location 之前调用了 __cxa_allocate_exception (这是 errno 的宏内容),前者调用 std::malloc 而不是保存 errno 状态(至少据我了解 libstdc++ 的 eh_alloc.cc 中 __cxa_allocate_exception 的来源)。

这意味着在内存分配失败的情况下,实际传递给异常对象的错误号会被 std::malloc 设置的错误号覆盖。无论如何,std::malloc 不保证保存现有的 errno 状态,即使在成功退出的情况下也是如此 - 所以上面的代码在一般情况下肯定会被破坏。

在 Cygwin,x86 上,为 test() 编译的代码(也使用 g++ 4.5.3)是可以的,但是:

这是否意味着要使库代码正确地将 errno 状态包装在异常中,我将始终必须使用扩展为类似的宏

实际上,我似乎找不到 C++ 标准的相应部分,该部分说明了在异常情况下评估顺序的任何内容,但对我来说,x86_64(在 Linux 上)上的 g++ 生成代码似乎由于分配内存而被破坏在为其构造函数收集参数之前的异常对象,并且这在某种程度上是编译器错误。我是对的,还是我的一些根本错误的想法?

0 投票
2 回答
71707 浏览

c - TCP 连接错误 115 Operation in Progress 原因是什么?

我的应用程序创建了一个 TCP 连接,这工作正常。但是在一个网络服务器中有很多IP说

  • 174.XXX
  • 54.xxx 像这样

当调用 TCP 连接(非阻塞,超时 60 秒)到 IP174.X.X.X 总是成功。但是使用 ip 连接到同一台服务器的 TCP 连接54.x.x.x 失败(大多数情况下),errno 115 measn 操作正在进行中。

你能解释一下errno 115的可能原因是什么

操作系统:Linux

我的 TCP 连接代码如下

0 投票
2 回答
1633 浏览

c - errno 值未更新

如果在连续调用套接字函数期间未更新 errno 值,问题可能会发生什么?

第一个应该有 errno = EINVAL 第二个应该有 errno = EPROTONOSUPPORT


从@JonathanLeffler 下面提供的代码中,cygwin 的输出如下:


在创建套接字之前,编辑了下面的上述代码以创建套接字 fd0

结果如下:


预计第一个和最后一个套接字创建应该具有相同的 errno 值。


但是如何解释这个输出呢?第 5 和第 6 个套接字创建具有相同的 errno 值,但错误原因不同。

实际代码如下:

0 投票
2 回答
403 浏览

c - 如何将我的错误描述添加到 perror 函数

如何将错误添加到错误堆栈?

这是我想要的一个例子

0 投票
2 回答
1050 浏览

c++ - 不同系统上的错误位置

我对我应该在我的程序中使用什么实现 errno() 感到困惑。

据我所知,标准的 errno() 是在 errno.h 中定义的。但是,Visual Studio 在 stdlib.h 中也有 errno()。也许这是不正确的,但对我来说 stdlib.h 的 errno() 比 errno.h 的快。但 errno() 也在 stddef.h 中定义。

我应该使用哪一个?#ifdef _WIN32 #include <stdlib.h> #else #include <errno.h> #endif?

0 投票
1 回答
238 浏览

haskell - 如何从haskell中的IOError中获取errno?

我在 Haskell 平台上,GHC 6.12.1 作为 apt-get 安装在 Debian Squeeze 上。鉴于我需要它在与最初引发它的位置不同的线程上,我如何从 IOError 中获取底层 errno?

我需要这个的原因是因为我正在实现一个网络协议,该协议在网络上公开了实际的 errno 值。我需要重建它吗?