一、两个1024

select中存放文件描述符的数组大小FD_SETSIZE为1024
进程的文件描述符上限默认是1024,正是因为这个原因,select设计时才把数组大小设计为1024

二、问题来了

进程的文件描述符上限是可以手动修改的

# 查看进程的文件描述符上限
ulimit -n# 修改进程的文件描述符上限为2048,临时修改,只对当前shell有效
ulimit -SHn 2048# 永久修改:编辑/etc/security/limits.conf
vi /etc/security/limits.conf
* hard nofile 65536
* soft nofile 65536

但是select的数组大小改不了 (╯‵□′)╯︵┻━┻,要改只能重新编译内核

三、扩展一下

除了每个进程的文件描述符有上限以外,系统还有一个总的上限,默认是100262

# 查看系统的文件描述符上限,方法一
sysctl -a | grep file-max# 查看系统的文件描述符上限,方法二
cat /proc/sys/fs/file-max
# 修改系统的文件描述符上限
sysctl -w fs.file-max=2048
# 使修改生效
sysctl -p

select中文件描述符上限为什么是1024?相关推荐

  1. select、poll、epoll的文件描述符上限问题

    select.poll.epoll是三个常用的I/O复用,之前使用过程中一直没很深入思考,只知道①select有文件描述符上限 ②poll是select的改进,去掉了文件描述符上限 ③epoll是前两 ...

  2. python中文件描述符_Python中的描述符

    python中文件描述符 In Python, a class that implements a get, set or delete methods for an object is called ...

  3. linux 文件指针,Linux中文件描述符fd与文件指针FILE*互相转换实例解析

    本文研究的主要是Linux中文件描述符fd与文件指针FILE*互相转换的相关内容,具体介绍如下. 1.文件描述符fd的定义:文件描述符在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进 ...

  4. linux中文件描述符fd和文件指针flip的理解

    整理自:http://www.cnblogs.com/Jezze/archive/2011/12/23/2299861.html 简单归纳:fd(file descriptor)只是一个整数,在ope ...

  5. UNIX中文件描述符和文件指针

    文件描述符 在C程序中,文件由文件指针或者文件描述符表示.ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UN ...

  6. Linux中文件描述符1,linux内核中的文件描述符(一)--基础知识简介

    原标题:linux内核中的文件描述符(一)--基础知识简介 Kernel version:2.6.14 CPU architecture:ARM920T Author:ce123(http://blo ...

  7. 在c语言中文件的指针是什么,C语言中文件描述符和文件指针的本质区别

    1,首先了解进程运行时默认打开的文件指针以及打开的文件 /* Standard streams. / extern struct _IO_FILE stdin; / Standard input st ...

  8. k8s中文件描述符与线程限制

    背景 linux中为了防止进程恶意使用资源,系统使用ulimit来限制进程的资源使用情况(包括文件描述符,线程数,内存大小等).同样地在容器化场景中,需要限制其系统资源的使用量. 限制方法 ulimi ...

  9. Select()系统调用及文件描述符集fd_set的应用

    在网络程序中,一个进程同时处理多个文件描述符是很常见的情况.select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好时,select()阻塞,其中任一设备准备好时,select ...

最新文章

  1. 半导体与智能汽车行业解决方案
  2. python的官方网站地址是什么-规范化Django/Python中的街道地址
  3. tkinter python 句柄_微云收藏 python tkinter.after
  4. getresourceasstream方法_【设计模式】第三篇:一篇搞定工厂模式【简单工厂、工厂方法模式、抽象工厂模式】...
  5. Awesome Bioinformatics:假期了,收藏学习吧!
  6. mysql function 事务_MySQL 事务
  7. HTTP请求时常见的请求方式与状态码
  8. BZOJ4602: [Sdoi2016]齿轮(并查集 启发式合并)
  9. ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  10. redis lpush WRONGTYPE Operation against a key holding the wrong kind of value
  11. 程序员30+后的困惑焦虑,出路在哪里?
  12. nuc977 linux i9341 2.8寸lcd配置
  13. 计算机网络:学习笔记(持续更新)
  14. 大众点评评论抓取-CSS加密破解
  15. Android常用adb命令总结
  16. 最笨的办法处理wos国家字段
  17. Blender学习记录
  18. 9款高质量学习软件,原来学霸都是这么炼成的!
  19. [架构之路-202]- 常见的需求获取技术=》输出=》用户需求、客户需求(As...., I want.....)、用例图
  20. 普天发布新一代配线架,终结争论?

热门文章

  1. 《程序员生存定律》读后感
  2. Fedora 18安装google输入法和云拼音
  3. 【TWVRP】模拟退火算法求解带时间窗的多车型路径规划问题【含Matlab源码 913期】
  4. 数据库查询中 where 和group by 能否一起使用?
  5. Transformer 实现 Kaggle 房价预测竞赛
  6. 当你也遇到VirtualBox报错:NS_ERROR_FAILURE (0x80004005)
  7. Vector在Java编程中的应用
  8. 猿创征文|OpenCV编程——计算机视觉的登堂入室
  9. 单细胞专题(二)| 我们的生老病死,被“它”看得透透的
  10. 思维导图带你走进春的世界