一个进程可同时打开的文件个数是有限的,这个限制是在/etc//security/limits.conf文件中设置的。
程序为了处理该文件必须引用此描述符。所谓的文件描述符是一个低级的正整数。最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应。因此,函数 scanf() 使用 stdin,而函数 printf() 使用 stdout
文件描述符fd是Linux相对有限的资源,单个进程中的fd数量有限制,一般默认是1024。
查看当前session的fd数量限制
ulimit -n
修改fd数量
ulimit –n 65535
上述命令中设置了的单一进程允许打开的最大文件数,但只是临时的,永久生效的方法需要修改/etc/security/limits.conf,在最后添加:
soft nofile 605536
hard nofile 605536