婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux的文件描述符、文件指針、索引節點詳情

Linux的文件描述符、文件指針、索引節點詳情

熱門標簽:烏海智能電話機器人 400電話申請方案 撫順移動400電話申請 做外呼系統的公司違法嗎 藍點外呼系統 貴陽教育行業電話外呼系統 威海人工外呼系統供應商 寧夏房產智能外呼系統要多少錢 在百度地圖標注車輛

Linux--文件描述符、文件指針、索引節點

一、Linux —— 文件描述符

1、文件描述符 Fd

當進程打開文件或創建新文件時,內核會返回一個文件描述符(非負整數),用來指向被打開的文件,所有執行I/O操作的系統調用(read、write)都會通過文件描述符。

文件描述符可以理解為進程文件描述表這個表的索引,或者把文件描述表看做一個數組的話,文件描述符可以看做是數組的下標。當需要進行I/O操作的時候,會傳入fd作為參數,先從進程文件描述符表查找該fd對應的那個條目,取出對應的那個已經打開的文件的句柄,根據文件句柄指向,去系統fd表中查找到該文件指向的inode,從而定位到該文件的真正位置,從而進行I/O操作。

特點:

  • 每個文件描述符會與一個打開的文件相對應
  • 不同的文件描述符也可能指向同一個文件
  • 相同的文件可以被不同的進程打開,也可以在同一個進程被多次打開

相關的三張表:

進程級的文件描述符表

struct task_struct {
  //...
  
    struct files_struct *files // 進程級別的文件描述符表
    
  //...
    
};

2、系統級的文件描述符表

內核對系統所有打開的文件維護了一個打開文件表,表中每一項稱為打開文件句柄,一個打開文件句柄描述了一個打開文件的全部信息

  • 當前文件偏移量(調用read()和write()時更新,或使用lseek()直接修改)
  • 打開文件時所使用的狀態標識(即,open()的flags參數)
  • 文件訪問模式(如調用open()時所設置的只讀模式、只寫模式或讀寫模式)
  • 與信號驅動相關的設置
  • 對該文件i-node對象的引用
  • 文件類型(例如:常規文件、套接字或FIFO)和訪問權限
  • 一個指針,指向該文件所持有的鎖列表
  • 文件的各種屬性,包括文件大小以及與不同類型操作相關的時間戳

3、文件系統的inode表

每個文件系統會為存儲于其上的所有文件維護一個inode表

文件描述符表、打開文件表、inode表之間的關系:

進程A文件描述符1和20指向同一個打開文件句柄,是因為多次調用open()等函數打開同一個文件導致。

進程A的文件描述符2和進程B的文件描述符2指向同一個打開文件句柄可能是因為調用fork()后出現的,子進程會繼承父進程的打開文件描述符表,也就是子進程繼承父進程打開文件。;或者某進程通過unix域套接字將一個打開的文件描述符傳遞給另一個進程;或者不通進程獨自調用open函數打開同一個文件是正好分配到與其他進程打開該文件描述符一樣。

進程A的描述符0和進程B的描述符3分別指向不同的打開文件句柄,但這些句柄均指向i-node表的相同條目,即同一個文件,發生這種情況是因為每個進程各自對同一個文件發起了open()調用。同一個進程兩次打開同一個文件,也會發生類似情況。

二、文件指針 *FILE

C語言中使用的是文件指針而不是文件描述符作為I/O的句柄,“文件指針(file pointer)”指向進程用戶區中的一個被稱為FILE結構的數據結構。當通過文件指針操作文件時,需要調用C語言stdio.h中提供的文件API(fopen()、fread()等)。

文件描述符在POSIX系統調用中直接可見,文件指針是C語言在其基礎上的包裝。

int open(const char *path, int access,int mode)  
FILE *fopen(char *filename, char *mode)

文件路徑 到 文件指針:filepath --fopen()-->FILE*;
文件路徑 到 文件描述符:filepath--open()--fd;
文件描述符 到 文件指針:fd--fdopen()-->FILE*;
文件指針 到 文件描述符:FILE*--fileno()--->fd;

三、索引節點 Inode

index node是類unix系統中保存文件系統中對象元數據的數據結構。

inode主要存儲以下數據:

  • inode編號
  • 文件大小
  • 占用的塊數目與塊大小
  • 文件類型(普通文件、目錄、管道,etc.)
  • 存儲該文件的設備號
  • 鏈接數目
  • 讀、寫、執行權限
  • 擁有者的用戶ID和組ID
  • 文件的最近訪問、數據最近修改時間
  • inode最近修改時間

stat命令可以查看元數據,`df -i查看每個硬盤分區的inode總數和已經使用的數量。除了文件名以外的所有信息,都存在inode中。

inode也會消耗硬盤空間,所以硬盤格式化的時候,操作系統自動將硬盤分成兩個區域。一個是數據區,存放文件數據;另一個是inode區(inode table),存放inode所包含的信息。

每個inode節點的大小,一般是128字節256字節。inode節點的總數,在格式化時就給定,一般是每1KB或每2KB就設置一個inode。假定在一塊1GB的硬盤中,每個inode節點的大小為128字節,每1KB就設置一個inode,那么inode table的大小就會達到128MB,占整塊硬盤的12.8%。

每個文件都有一個inode,因此有可能inode已經用完但是硬盤還未存滿的情況。linux系統不使用文件名而使用inode來識別文件。

表面上,用戶通過文件名,打開文件。實際上,系統內部這個過程分成三步:首先,系統找到這個文件名對應的inode號碼;其次,通過inode號碼,獲取inode信息;最后,根據inode信息,找到文件數據所在的block,讀出數據。

目錄文件就是由一系列目錄項組成的數據結構,每個目錄項包含文件名和inode號碼兩部分。

1、Inode特殊作用

  • 有時,文件名包含特殊字符,無法正常刪除。這時,直接刪除inode節點,就能起到刪除文件的作用。
  • 移動文件或重命名文件,只是改變文件名,不影響inode號碼。
  • 打開一個文件以后,系統就以inode號碼來識別這個文件,不再考慮文件名。因此,通常來說,系統無法從inode號碼得知文件名。

第3點使得軟件更新變得簡單,可以在不關閉軟件的情況下進行更新,不需要重啟。因為系統通過inode號碼,識別運行中的文件,不通過文件名。更新的時候,新版文件以同樣的文件名,生成一個新的inode,不會影響到運行中的文件。等到下一次運行這個軟件的時候,文件名就自動指向新版文件,舊版文件的inode則被回收。

四、拓展

1、磁盤結構

文件儲存在硬盤上,硬盤的最小存儲單位叫做”扇區”(Sector)。每個扇區儲存512字節(相當于0.5KB)。

操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個”塊”(block)。這種由多個扇區組成的”塊”,是文件存取的最小單位。”塊”的大小,最常見的是4KB,即連續八個 sector組成一個 block。

由上,可用(柱面號,盤面號,扇區號)來定位任意一個“磁盤塊”,我們經常提到文件數據存放在外存中的幾號塊(邏輯地址),這個塊號就可以轉換成(柱面號,盤面號,扇區號)的地址形式。

可根據該地址讀取一個“塊”,操作如下:

① 根據“柱面號”移動磁臂,讓磁頭指向指定柱面(也稱磁道)

② 激活指定盤面對應的磁頭;

③ 磁盤旋轉的過程中,指定的扇區會從磁頭下面劃過,這樣就完成了對指定扇區的讀/寫

到此這篇關于Linux的文件描述符、文件指針、索引節點詳情的文章就介紹到這了,更多相關Linux文件描述符、文件指針、索引節點內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:慶陽 周口 那曲 松原 泰州 銅川 朝陽 蕪湖

巨人網絡通訊聲明:本文標題《Linux的文件描述符、文件指針、索引節點詳情》,本文關鍵詞  Linux,的,文件,描述,符,指針,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux的文件描述符、文件指針、索引節點詳情》相關的同類信息!
  • 本頁收集關于Linux的文件描述符、文件指針、索引節點詳情的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    中文字幕制服丝袜一区二区三区 | 在线观看成人小视频| 亚洲一区二区高清| 欧美高清dvd| 国产精品一区二区在线播放| 樱花影视一区二区| 久久久久国产精品人| 欧美日韩国产美| 成人免费视频一区| 亚洲国产人成综合网站| 一区二区三区在线观看网站| 久久伊99综合婷婷久久伊| 欧美日韩日本视频| 欧美三区在线视频| 国产精品综合一区二区| 天堂av在线一区| 蜜桃一区二区三区在线| 一区二区三区小说| 亚洲免费观看高清完整版在线| 欧美三日本三级三级在线播放| 成人短视频下载| 日韩一区国产二区欧美三区| 欧美伦理视频网站| 欧美视频一区二| www久久精品| 国产亚洲精品精华液| 欧美国产成人在线| 亚洲精品网站在线观看| 一区二区三区免费观看| 午夜欧美2019年伦理| 久久不见久久见免费视频7| 同产精品九九九| 亚洲国产婷婷综合在线精品| 日韩中文字幕亚洲一区二区va在线 | www.性欧美| 色综合天天在线| 欧美日韩免费高清一区色橹橹| 日韩国产一二三区| 亚洲精品一区二区在线观看| 一区二区免费视频| av网站一区二区三区| 在线精品亚洲一区二区不卡| 67194成人在线观看| 精品国产91九色蝌蚪| 久久久亚洲综合| 日韩亚洲欧美一区二区三区| 亚洲人妖av一区二区| 久久www免费人成看片高清| 欧美伊人久久久久久久久影院| 国产精品资源在线| 久久久久久久久99精品| 午夜免费久久看| caoporen国产精品视频| 欧美一级二级三级乱码| 久久久精品免费观看| 色妞www精品视频| 欧美福利电影网| 国产精品久久久久久福利一牛影视| 亚洲综合丝袜美腿| 91网站最新网址| 欧美mv日韩mv国产网站| 亚洲欧美日韩一区| 国产精品女人毛片| 天天操天天色综合| 日韩av不卡一区二区| 亚洲电影一区二区三区| 亚洲一本大道在线| 国产精品亚洲成人| 欧美在线不卡视频| 日韩片之四级片| 国产欧美日韩综合精品一区二区| 国产精品久久久久aaaa樱花| 精品成人在线观看| 久久精品夜夜夜夜久久| 国产91综合一区在线观看| 欧美在线不卡一区| 欧美日韩美少妇| 1024成人网| 中文字幕视频一区二区三区久| 一区二区三区中文免费| 国产乱码精品一区二区三 | 99免费精品在线| 日本一区二区三区四区| 婷婷亚洲久悠悠色悠在线播放| 99久久er热在这里只有精品66| 136国产福利精品导航| 国产91丝袜在线播放0| 日韩理论片一区二区| 9i在线看片成人免费| 久久精品国产精品亚洲红杏 | 精品久久久久久久人人人人传媒| 亚洲欧洲日本在线| 国产精品一区二区不卡| 久久免费视频色| 亚洲一区二区精品3399| 狠狠色丁香久久婷婷综合丁香| 北条麻妃国产九九精品视频| 欧美日韩免费在线视频| 亚洲电影第三页| 成人精品电影在线观看| 国产99久久久国产精品潘金| 国产精品天干天干在线综合| 欧美视频自拍偷拍| 另类调教123区| 亚洲欧美日韩久久精品| 欧美艳星brazzers| 丁香天五香天堂综合| 国产精品网站在线| 国产精品一区二区果冻传媒| 欧美高清在线精品一区| 91在线播放网址| 亚洲精品视频在线观看免费| 在线综合亚洲欧美在线视频| 国产精品一区二区三区99 | 美腿丝袜在线亚洲一区| 国产精品毛片无遮挡高清| 91捆绑美女网站| 国产伦精品一区二区三区在线观看| 亚洲人成在线播放网站岛国 | 中文字幕一区二| 欧美成人免费网站| 国产一区二区三区高清播放| 一区二区三区电影在线播| 欧美精品一区二区久久久| 国产精品亚洲а∨天堂免在线| 午夜不卡av免费| xnxx国产精品| 精品免费一区二区三区| 92国产精品观看| 国产成人免费在线观看| 亚洲综合色视频| 一区二区三区精品视频| 日本午夜精品视频在线观看| 国产精品盗摄一区二区三区| 久久久久久免费网| 欧美日韩另类一区| 日本精品视频一区二区三区| 久久丁香综合五月国产三级网站 | 亚洲成人av电影在线| 久久综合视频网| 国产真实乱对白精彩久久| 亚洲国产精品一区二区久久| 日韩美女视频一区二区在线观看| 国产乱码精品一区二区三| 91精品国产高清一区二区三区蜜臀| 国产综合一区二区| 国产精品乱人伦一区二区| 91精品国产免费| 国产乱淫av一区二区三区| 亚洲自拍偷拍网站| 欧美色爱综合网| 国产一区欧美日韩| 久久久亚洲精品石原莉奈| 成人成人成人在线视频| 久久精品免费观看| 国产精品国产成人国产三级| 亚洲靠逼com| 综合分类小说区另类春色亚洲小说欧美| 欧美一二区视频| 欧美日韩国产成人在线免费| www.av亚洲| 成人国产电影网| 成人性生交大片| 国产91高潮流白浆在线麻豆| 伦理电影国产精品| 五月天一区二区| 国产欧美一区二区在线观看| 日本一区二区动态图| 久久久噜噜噜久久人人看| 欧美大尺度电影在线| 日韩亚洲欧美在线观看| 欧美一区午夜精品| 在线不卡一区二区| 欧美日韩和欧美的一区二区| 亚洲欧美日韩在线不卡| 精品av久久707| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 中文字幕欧美国产| 国产精品水嫩水嫩| 国产精品久久久久毛片软件| 亚洲精品中文在线影院| 中文字幕一区二区视频| 国产欧美日韩亚州综合| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 免费在线视频一区| 伊人性伊人情综合网| 三级欧美韩日大片在线看| 水蜜桃久久夜色精品一区的特点| 天天色天天操综合| 亚洲欧美成aⅴ人在线观看| 一区二区三区中文在线观看| 老司机免费视频一区二区三区| 狠狠色综合日日| 成人免费视频播放| 91福利在线免费观看| 欧美精品乱码久久久久久| 欧美一区二区三区四区视频| 欧美成人福利视频| 国产精品素人视频| 国产精品久久久久7777按摩 |