c - 读取带有错误 ENOMEM 返回的套接字时怎么会发生这种情况

标签 c linux-kernel

读取带有错误 ENOMEM 返回的套接字时怎么会发生这种情况? Man 2 阅读,我看不到有关此错误的任何详细信息,有人可以帮助我。谢谢。 我的 linux 内核 2.6.26-1-686。

最佳答案

环境科学

是操作系统错误代码,定义在 kern/include/kern/errno.h 中,由于内存不足而返回。

名称 ENOMEM 代表Error NO MEMory。它是 fork() 调用返回的错误代码之一,这意味着没有更多可用的存储空间。与套接字相关,当没有足够的资源可用于创建套接字时,它们会被引发。错误码的值为12。

您可以立即处理此错误 并尽快释放所有分配的资源, 避免需要分配新资源的操作。

编辑:

从套接字读取会导致接收数据缓冲区的分配,并且在您的要求之后它们需要空闲。还要确保有足够的内存。当分配内存失败时,它会返回这个错误。参见 link

关于c - 读取带有错误 ENOMEM 返回的套接字时怎么会发生这种情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25072292/

相关文章:

c - 如何使用Axis2c从WSDL文件生成C文件

java - 从java中的c/c++源代码中提取函数名称

c++ - 告诉转义的十六进制在字符串中结束的位置

linux - 到达ubuntu上linux内核源码的根目录?

linux - 为什么我的应用程序是为 64 位编译的,所以会出现段错误?

linux - 如何设置全局 nofile 限制以避免 "many open files"错误?

c - 如何在C中访问结构体的元素?

c - 菜单驱动程序首先创建 'n' 节点数的单链表,然后显示创建的节点并进一步执行其他操作

c - 如何监听内核中的新分支

c - 为什么进程的内存分配很慢,可以更快吗?