Linux内核读取文件流程(系统调用)详解
这里写目录标题
以linux内核3.13版本为例,首先内核通过系统调用read(),执行
sys_read(),在文件linux/fs/read_write.c中:
//linux/fs/read_write.c
SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
{
struct fd f = fdget(fd); //先根据文件描述符fd得到对应的file对象
ssize_t ret = -EBADF;
if (f.file) {
loff_t pos = file_pos_read(f.file); //得到文件的当前位置
ret = vfs_read(f.file, buf, count, &pos);
共有 0 条评论