文件描述符对于 select() 来说太大

文件描述符对于 select() 来说太大

我在本地运行一个 R 脚本,该脚本涉及打开大量文件,还生成大量临时文件并将它们存储在中/tmp/Rtmpxxxx。最初它崩溃了,因为我的ulimit -n设置太低,所以我ulimit -n将 1024 增加到 1000000。

然而,R 脚本仍然崩溃:

Error in selectChildren(ac[!fin], -1) : 
  file descriptor is too large for select()

我检查了cat /proc/sys/fs/file-max返回的结果,结果为 9223372036854775807,这大概是 64 位有符号整数的最大值。我肯定没有打开那么多文件,所以我想知道为什么仍然会出现错误?

sam@sam:~/$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 256509
max locked memory       (kbytes, -l) 8215701
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 256509
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

相关内容