本文来源:原创 4ct10n 合天智汇
0x01 文件描述符介绍
0x1 文件与文件描述符
0x2 相互关系
其中进程,文件,文件描述符的关系如下:一个进程可以有多个文件描述符一个文件可以由多个文件描述符对应,文件描述符可以是不同进程一个文件描述符只能对应一个文件
0x3 操作指令
原创 4ct10n 合天智汇
0x01 文件描述符介绍
Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件,所有执行I/O操作的系统调用都会通过文件描述符。这个操作包含各种文件的读写,程序的输入输出等。
0x1 文件与文件描述符
文件描述符最终对应的是文件,文件包含多种类型文件又可分为:普通文件、目录文件、链接文件和设备文件。程序刚刚启动的时候,0是标准输入,1是标准输出,2是标准错误。如果此时去打开一个新的文件,它的文件描述符会是3。POSIX标准要求每次打开文件时(含socket)必须使用当前进程中最小可用的文件描述符号码.
0x2 相互关系
其中进程,文件,文件描述符的关系如下:一个进程可以有多个文件描述符一个文件可以由多个文件描述符对应,文件描述符可以是不同进程一个文件描述符只能对应一个文件具体关系图如下
文件描述符映射到文件
第一列是用户态进程符号描述表,后两列是内核态系统级表项。具体从文件描述符到文件,先从文件描述符表开始索引,定位到文件句柄指针,接着找到打开文件表,存储着文件的状态,包括偏移,inode号等,不同的文件描述符可以指向相同的文件句柄指针(可用dup或dup2函数实现)。
0x3 操作指令
lsof
lsof是列出系统所占用的资源(list open files),其中包括句柄资源。
lsof -a -p pid -d0,1,2,3#查看进程的文件描述符 lsof -w -n #查看所有使用的文件ulimit
ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,包括打开文件句柄数限制。
ulimit -n #查看进程允许打开的最大文件句柄数 ulimit -n pid#设置进程能打开的最大文件句柄数看完了内容,做个实验放松一下:Web操作系统基础-Linux
转载请注明来自网盾网络安全培训,本文标题:《原创 4ct10n 合天智汇》
标签:合天智汇
- 关于我们