标签:src 文件读写 路径名 nod 技术 字符串表 inode 文件表 9.png
本文所述关于文件管理的系列文章主要是对陈莉君老师所讲述的文件系统管理知识讲座的整理。
Linux可以支持不同的文件系统,它源于unix文件系统,也是unix文件系统的一大特色。
本文将以不同文件系统之间的拷贝为实例进行讲述
图 不同文件系统之间的拷贝
图 文件拷贝对应的C语言片段
文件读写之前都要先打开文件,打开函数的原型如下:
从整体流程来看,open的内核实现如下:
进程从用户态获取路径名到内核缓冲区;
然后查找到父目录;如果设置了O_CREAT标志,则继续查找路径最后一个分量
最后获取对应文件的打开文件结构
将这个结构与当前进程的打开文件表联系起来,返回相应的fd。
当内核要访问一个文件时,第一步需要找到这个文件,这由do_filp_open完成。
在do_filp_open的实现中,查找文件过程由path_init和link_path_walk完成。
这两个函数将用户传进来的用字符串表示的文件路径,转换成一个dentry结构,建立好相应的inode,并将查找结果存储在nameidata结构中。
标签:src 文件读写 路径名 nod 技术 字符串表 inode 文件表 9.png
原文地址:http://www.cnblogs.com/smartjourneys/p/7230912.html