打开文件:fopen举个例子:假设你写了个程序,其功能是在当前目录创建一个新文件。二、如何用系统接口进行文件操作打开文件函数open向文件读取函数read3个linux内核的秘密,让你彻底搞懂文件系统
打开文件:fopen举个例子:假设你写了个程序,其功能是在当前目录创建一个新文件。二、如何用系统接口进行文件操作打开文件函数open向文件读取函数read3个linux内核的秘密,让你彻底搞懂文件系统
实际上,文件描述符为一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。操作系统为每一个进程维护了一个文件描述符表,该表的索引值都是从0开始的,因此在不同的进程中可以看到相同的文件描述符指向同一个文件,也可能指向不同的文件。。(files数组包含该进程打开的文件指针)指针指向一个数组,这个数组里装着所有该进程打开文件的指针,可以通过以下命令查看当前进程所包含的文件。进程与文件描述符
file类型,包含了打开文件的一些属性比如偏移量,读写访问模式等,这是真正意义上的文件句柄。file的个数,也就是文件句柄个数,而不是文件描述符。file-nr中的文件句柄数只是个位数的变化,而lsof看到的结果涨了1000多。通过上面两个例子,你应该知道lsof的输出和实际的文件句柄数有差距的原因了。