Linux中查看与设置文件描述符的方法(图文)

发布时间:2020-10-09编辑:脚本学堂
本文介绍下,在linux系统中,查看当前文件描述符,以及如何设置文件描述符的方法,有需要的朋友,可以参考下。

在介绍如何查看及修改linux中的文件描述符之前,先来个有关文件描述符的知识普及。

在Linux系统中,当某个程序打开文件时,操作系统返回相应的文件描述符,程序为了处理该文件必须引用此描述符。
所谓的文件描述符是一个低级的正整数。
最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应。
因此,函数 scanf() 使用 stdin,而函数 printf() 使用 stdout。
可以用不同的文件描述符改写默认的设置并重定向进程的 I/O 到不同的文件。

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

有了以上有关文件描述符的介绍,下面我们介绍下查看与修改文件描述符的方法。

1,查看Linux系统当前的文件描述符
查看当前文件描述符

可见,当前系统下的文件描述符为:1024。

2,修改linux系统的文件描述符
1)、修改文件描述符,可以用命令:ulimit -HSn
例如,将文件描述符修改为:65535,如下:
 

修改文件描述符

修改完成后,再次查看当前linux系统的文件描述符,显示如下:
查看当前文件描述符

可见,已经修改为65535了。

2)、如果想让修改永久生效,可以这样做:
将命令:ulimit -HSn 65535加入到/etc/rc.local文件中,如下所示:
 

文件描述符修改永久生效

这样即便系统重启,对于文件描述符的修改也不会改变了。

3)、通过修改limits.conf文件
编辑/etc/security/limits.conf 文件,在最后加入如下两行
 

复制代码 代码示例:
*  soft    nofile  65536
*  hard    nofile  65536
 

或者使用下列命令直接插入:
 

复制代码 代码示例:
echo "*               soft    nofile  65536" >>/etc/security/limits.conf
echo "*               hard    nofile  65536" >>/etc/security/limits.conf
 

无需重启,即时生效。

就介绍这些吧,希望有助于大家掌握linux中文件描述符的相关内容。
脚本学堂,祝大家学习进步。

您可能感兴趣的文章:
linux下设置文件描述符的方法
深入理解linux文件描述符fd和文件指针flip(图文)
linux文件描述符与输入输出重定向