读取带有错误 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/