c - Linux errno 23 和 Linux errno 24 的区别

标签 c linux sockets error-code errno

  1. errno.h 中的这 2 个 linux 错误有什么区别? 23 和 24

    我尝试了 2 个不同的网站,但无法理解两者之间的区别。


    [EMFILE]
    Too many open files.
    [ENFILE]
    Too many files open in system.
    

    # define ENFILE      23  /* File table overflow */
    # define EMFILE      24  /* Too many open files */
    

  2. 另外,我收到 errno 24 和第 974 次套接字调用失败。 (AF_INET UDP 数据报套接字)

    当我执行 cat/proc/sys/fs/file-max 时,我看到的值为 334076 ulimit -n 显示 1024

    知道如何提高限​​制吗?

最佳答案

对于1)两种错误码都是关于打开文件过多的情况。 EMFILE 是在您的进程中打开的文件太多。 ENFILE 是整个系统打开的文件太多。

关于c - Linux errno 23 和 Linux errno 24 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862733/

相关文章:

python - Errno 111 连接在 Python 套接字编程中被拒绝

c - 防止外部调用 lib 文件内的函数

c++ - 指向void的const指针的目的是什么

Linux 脚本变量 "$$"

linux - ubuntu启动黑屏

C# 控制台应用程序响应 HTTP POST 请求

c - 编写可移植到 32 位和 64 位体系结构的代码时要考虑的要点

c - 当我为它们分配不同的值时,为什么这两个字符串打印相同的值?

linux - 取出标准输出值的一部分并将其放入数组变量中

java - 如何关闭JAVA客户端和Active-MQ队列之间的特定套接字