檔案系統 read系統呼叫剖析(一)

2021-06-25 21:29:03 字數 745 閱讀 1490



一:read系統呼叫剖析

1,kernel層的read系統呼叫的入口函式是在kernel/fs/read_write.c檔案中,如下所示:

372 syscall_define3(read, unsigned int, fd, char __user *, buf, size_t, count)

373

386 return ret;

387 }

fget_light(fd, &fput_needed)函式的作用是根據使用者層的檔案描述符fd根據當前程序的current->files->fdt->fd[fd]中找到核心中的struct file結構體。

file_pos_read(file);的作用是獲取到要讀寫檔案的偏移,

最終是呼叫到了vfs_read()函式去真正的讀寫。

1. ssize_t vfs_read(struct file *file, char __user *buf, size_t count, loff_t *pos)    

2.

27.27. inc_syscr(current);

28.28. }

29.29. /*返回實際傳送位元組數*/

30.30. return ret;

31.31. }

linux 2.6檔案鎖的概念

read 系統呼叫剖析

注 所有清單中 均來自 linux2.6.11 核心原 讀資料之前,必須先開啟檔案。處理 open 系統呼叫的核心函式為 sys open 所以我們先來看一下該函式都作了哪些事。清單1顯示了 sys open 的 省略了部分內容,以後的程式清單同樣方式處理 清單1 sys open 函式 asmli...

read系統呼叫

read系統呼叫是glibc庫裡面的乙個函式,是對系統呼叫函式sys read 的封裝與實現。glic庫會將read函式在使用者態下進行解析,通過暫存器將引數儲存起來,並借助於系統呼叫名稱獲得系統呼叫號,該系統呼叫號又可以作為系統呼叫函式在sys call table中的索引獲取函式入口位址,該錶位...

read系統呼叫,mmap系統呼叫

read系統呼叫,mmap系統呼叫 2012 07 23 09 54 28 分類 linux 標籤 linux 檔案系統 虛擬記憶體 儲存系統 字型大小 訂閱 一般情況下,操作檔案既可以使用標準i o,也可直接使用系統呼叫。兩者有何區別呢?在輸入輸出中,直接使用底層的系統呼叫效率是非常低的,為什麼?...