1. 程式人生 > >Linux核心原始碼閱讀之開啟檔案篇

Linux核心原始碼閱讀之開啟檔案篇

至此我們轉向最重要的程式碼__link_walk_path,該函式把傳進來的字串name,也就是使用者指定的路徑,按路徑分隔符分解成一系列小的component。比如使用者說,我要找/path/to/dest這個檔案,那麼我們的檔案系統就會按path,to,dest一個一個來找,知道最後一個分量是檔案或者查詢完成。他找的時候,會先用path_init初始化過的根路徑去找第一個分量,也就是path。然後用pathdentry->d_inode去找to,這樣迴圈到最後一個。注意,核心會快取找到的路徑分量,所以往往只有第一次訪問一個路徑的時候,才會去訪問磁碟,後面的訪問會直接從快取裡找,下面會看到,很多與頁告訴快取打交道的程式碼。但不管怎樣,第一遍查詢總是會訪問磁碟的。