文件描述符,文件句柄的区别

本文深入探讨Linux文件描述符的概念,解释其与Windows系统句柄的相似之处,并提供设置最大文件描述符数量的方法以解决服务中文件描述符不足的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件句柄:是windows下概念,在linux/unix下没有句柄这一说法,

在linux/unix下都是"文件描述符",是整形的


如果使用了标准C库的函数获得文件描述符,那么就不要使用win32的文件操作函数,因为win32的文件操作函数需要win32句柄,


文件描述符是linux/unix操作系统中特有的概念。其相当于windows系统中的句柄。习惯性的,我们也把linux文件描述符称之句柄。

Linux系统中, 每当进程打开一个文件时,系统就为其分配一个唯一的整型文件描述符,用来标识这个文件。标准C中每个进程默认打开的有三个文件,标准输入,标准输出,标准错误,分别用一个FILE结构的指针来表示,即stdin,stout,sterr,这三个结构分别对应着三个文件描述符0,1,2。

文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。linux 操作系统通常对每个进程l能打开的文件数量有一个限制。

linux系统默认的最大文件描述符限制是1024

  1. [root@localhost ~]# ulimit -n
    1024

当某个服务用户比较多时,1024个句柄明显不够用,比如web服务器。我们使用ulimit -HSn 65536来设置最大文件描述符数

将此命令写入rc.local中,就可以完美突破linux系统的文件描述符限制了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值