文件系统

发表于:2007-07-04来源:作者:点击数: 标签:
sys_open(const char __usr *filename,int flags int mode)分析 sys_open(const char __usr *filename,int flags, int mode)分析 输入: 文件名,标志,模式 输出:返回值为零 功能: 1.进入内核空间为文件名分配内存tmp = getname(filename); 2.获取描述符

sys_open(const char __usr *filename,int flags int mode)分析

sys_open(const char __usr *filename,int flags, int mode)分析

输入: 文件名,标志,模式

输出:返回值为零

功能: 1.进入内核空间为文件名分配内存tmp = getname(filename);

           2.获取描述符 fd = get_unused_fd();

           3,打开文件,取得文件底层操作函数struct file *f = filp_open(tmp, flags, mode);

        函数error = open_namei(filename, namei_flags, mode, &nd); 找到具体的文件入口点

              struct file *dentry_open(nd.dentry, nd.mnt, flags); 挂载文件操作函数。

           4,文件指针放入进程的文件描述符表。

原文转自:http://www.ltesting.net