- 主题:centos怎样查看系统中有多少个select的fd
如题,select最多能起1024个fd,我现在连续调用select,起的多了,就是报出:filedescriptor out of range in select(),so我想监控一下系统实时起了多少个fd,做出相应的动作,
那问题来了,我想知道查看select实时起的fd该用啥方法
--
FROM 36.112.24.*
【 在 nokia0125 的大作中提到: 】
: 如题,select最多能起1024个fd,我现在连续调用select,起的多了,就是报出:filedescriptor out of range in select(),so我想监控一下系统实时起了多少个fd,做出相应的动作,
: 那问题来了,我想知道查看select实时起的fd该用啥方法
刚才在查了下,select的fd值最大是1024,那我怎样才能查看我系统里select值是否已经达到最大值,用啥样的参数?
--
FROM 36.112.24.*
/proc/<pid>/fd
【 在 nokia0125 (二过头) 的大作中提到: 】
: 刚才在查了下,select的fd值最大是1024,那我怎样才能查看我系统里select值是否已
: 经达到最大值,用啥样的参数?
--
FROM 116.30.222.*
【 在 iwannabe 的大作中提到: 】
: /proc/<pid>/fd
:
pwd
/proc/23917/fd这目录吗,这个目录下都是:
ls -lt
total 0
lrwx------ 1 root root 64 Sep 23 10:24 255 -> /dev/pts/8
lrwx------ 1 root root 64 Sep 23 10:03 0 -> /dev/pts/8
lrwx------ 1 root root 64 Sep 23 10:03 1 -> /dev/pts/8
lrwx------ 1 root root 64 Sep 23 10:03 2 -> /dev/pts/8
lr-x------ 1 root root 64 Sep 23 10:03 3 -> /var/run/utmp
--
FROM 36.112.24.*
【 在 iwannabe 的大作中提到: 】
: /proc/<pid>/fd
:
看不懂啊
--
FROM 36.112.24.*
在网上仔细看了一下,fd值会累加,最多累加到1024,那我在哪里能看到当前fd值累加到多少了
--
FROM 36.112.24.*
是当前进程,不是整个系统,这些fd是你自己添加到select里的,自己还不知道大小?
/proc/<pid>/fd下是pid对应的进程打开的文件描述符,数字就是fd,链接是fd对应的文件
别整select了,换了吧
【 在 nokia0125 (二过头) 的大作中提到: 】
: 如题,select最多能起1024个fd,我现在连续调用select,起的多了,就是报出:filedescriptor out of range in select(),so我想监控一下系统实时起了多少个fd,做出相应的动作,
: 那问题来了,我想知道查看select实时起的fd该用啥方法
--
FROM 222.128.5.*
【 在 gameplayer 的大作中提到: 】
: 是当前进程,不是整个系统,这些fd是你自己添加到select里的,自己还不知道大小?
: /proc/<pid>/fd下是pid对应的进程打开的文件描述符,数字就是fd,链接是fd对应的文件
: 别整select了,换了吧
: ...................
fd是自己添加到select里边的,没听懂,我理解fd是随着select调用而递增,最后到了1024就会报出out of range
--
FROM 36.112.24.*
fd是确实是系统分配给你的,但调用select前不得自己用FD_SET添加进去吗?你添加的
时候检查一下是不是超过1024不行吗?
【 在 nokia0125 (二过头) 的大作中提到: 】
: fd是自己添加到select里边的,没听懂,我理解fd是随着select调用而递增,最后到了1024就会报出out of range
--
FROM 222.128.5.*
FD_SET是把fd进行位操作,所以不能大于1024, 换poll 吧,功能一样
【 在 nokia0125 (二过头) 的大作中提到: 】
: fd是自己添加到select里边的,没听懂,我理解fd是随着select调用而递增,最后到了
: 1024就会报出out of range
--
FROM 116.30.222.*