fd, 文件描述符

fd, 文件描述符 查看系统级文件描述符/FD 限制 cat /proc/sys/fs/file-max sysctl -a | grep fs.file-max 查看 shell 级 fd 数 限制 # 用户 shell 里创建的进程的 fd 数限制 ulimit -a|grep 'open files' ulimit -Hn ulimit -Sn 查看某一运行中进程的 fd 限制 cat /proc/<PID>/limits |grep 'Max open files' 查看系统已经打开的文件数 cat /proc/sys/fs/file-nr 查看某一进程的打开文件数量 lsof -p <PID> | wc -l ls -l /proc/<PID>/fd |wc -l 文件描述符 (File descriptor) 是计算机科学中的一个术语,是一个用于表述指向文件的引用的抽象化概念。 文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于UNIX、Linux这样的操作系统。 FD 文件描述符 一、概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被打开的文件,所有执行I/O操作的系统调用都会通过文件描述符。 二、文件描述符、文件、进程间的关系 1.描述: 我们可以通过linux的几个基本的I/O操作函数来理解什么是文件操作符。 fd = open(pathname, flags, mode) // 返回了该文件的fd rlen = read(fd, buf, count) // IO操作均需要传入该文件的fd值 wlen = write(fd, buf, count) status = close(fd) 每当进程用open()函数打开一个文件,内核便会返回该文件的文件操作符(一个非负的整形值),此后所有对该文件的操作,都会以返回的fd文件操作符为参数。【注1】 ...

2012-04-15 · 4 min · 779 words · -