檔案描述符和檔案系統
對檔案描述符的理解:
檔案描述符,作業系統通過一個整數代表開啟的檔案,將這個整數稱為~。
檔案流指標用於庫函式操作io檔案
檔案描述符用於系統呼叫介面操作函式
檔案流指標的結構體裡面的一個成員就是檔案描述符
程式如何通過檔案一個數字(檔案描述符)來操作檔案呢?
每個PCB 有個指標file*指向一個檔案結構體,裡面有個陣列指標,而陣列中的每個與元素則是存放開啟檔案的指標file*
檔案描述符就是程式pcb中file_stuct結構體中陣列的下標
file 結構體中除了有一個成員是檔案描述符,結構體中還有使用者態的緩衝區
檔案描述符分配規則:
檔案描述符的分配是有限的,因為它就是下標,所以檔案開啟一定要關閉
分配規則:每次找未使用的最小位
重定向
將(檔案描述符)下標所對應的檔案描述替換成另外一個檔案描述)
例如原本指向 test.txt,用dup2重新指向test.fd
標準輸入輸出重定向:
標準輸入重定向:原本從標準輸入讀取資料重新定向為從其他檔案讀取資料
標準輸出重定向:把原來要輸出的標準內容(輸出到螢幕),重新定向後輸出到指定的檔案當中。
- 標準輸入重定向(很少用)
< - 標準輸出重定向
清空原有內容後新增新內容 <br>
在原來的內容後新增新內容
ls 2>&1 >/dev/null // 2裡面的內容放在1裡面輸出,1裡面的內容放在檔案/dev/null
ls >/dev/null 2>&1 // >前面數字,預設1
對 ls 2>&1 >/dev/null 解釋如下圖:
![這裡寫圖片描述](https://img-blog.csdn.net/20180823152913594?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3J1b19iaW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
檔案系統
檔案系統板塊:
超級塊:存放檔案本身結構資訊
索引塊:檔案在磁碟從放的位置
inode點陣圖:在inode節點區搜尋哪裡有空的inode
date點陣圖:在inode節點區搜尋哪裡有存放資料的空位置
inode節點區:存放檔案的其他一些兒資訊
資料區:檔案的內容
軟連線:
如何產生:ln -s 原檔案 tmp.soft(軟連線檔名)
硬連結:
如何產生 ln 檔名 檔名.hard
對軟連線和硬連結的理解:
軟連線可看做是一個快捷方式,通過軟連線檔案可以找到其他位置的檔案,軟連線檔案中儲存的是所指的另一個檔案的路徑名,通過路徑定位來定位所指檔案。它針對的是一個檔名,硬連結更像是對目錄項(或檔案)的備份
硬連結更像是一個檔案的別名,它有自己的目錄項,但並沒有單獨的inode節點和資料區,硬連結的inode號,與原始檔的相同。那麼我們刪除一個檔案時,實際上是將inode節點的連線數-1,當連結數為0時,檔案就真的刪除了,釋放節點和資料區
兩者區別:
- 軟連線有自己的inode結點,硬連結的inode號,與原始檔的相同
- 軟連線可以對目錄進行操作(比如建立),硬連結不可以
3 刪除原始檔對硬連結檔案沒有影響,只是inode中的連結數-1,對軟連線有影響,軟連線將斷開,就找不到檔案 - 硬連結不能跨分割槽建立但連線可以
有幾個檔名對應著同一個incode,就叫硬連結幾,比如有兩個檔案對應著同一個incode,就叫軟連線2
相關文章
- 檔案和檔案系統
- 檔案描述符
- Linux檔案描述符Linux
- 檔案包含之包含了Linux檔案描述符Linux
- 檔案系統和檔案 API 安全性缺失指南API
- Linux系統篇-檔案系統&虛擬檔案系統Linux
- Linux--檔案描述符、檔案指標、索引節點Linux指標索引
- 檔案系統
- linux中的檔案描述符Linux
- 檔案系統(五):exFAT 檔案系統原理詳解
- Linux系統檔案系統及檔案基礎篇Linux
- 關於檔案系統在建立目錄檔案和普通檔案時的區別
- 【檔案系統】嵌入式檔案系統Fatfs簡介
- 檔案系統(十):一文看懂 UBI 檔案系統
- 微信小程式檔案預覽和下載-檔案系統微信小程式
- 檔案的基本管理和XFS檔案系統備份恢復
- windows 檔案描述符 _open_osfhandleWindows
- [Linux]檔案系統Linux
- FUSE檔案系統
- 檔案系統安全
- debugfs檔案系統
- Linux檔案系統Linux
- 智慧小程式檔案館——檔案系統能力
- 分散式檔案系統(HDFS)與 linux系統檔案系統 對比分散式Linux
- 檔案系統(十一):Linux Squashfs只讀檔案系統介紹Linux
- 檔案系統(四):FAT32檔案系統實現原理
- 如何清理Mac系統中殘留的檔案和快取檔案Mac快取
- 檔案系統&&磁碟管理(六)–swap分割槽、迴環裝置、檔案系統配置檔案fstab
- 04 磁碟儲存和檔案系統
- linux檔案系統和日誌分析Linux
- spark直接讀取本地檔案系統的檔案Spark
- 根檔案系統簡介與BusyBox構建根檔案系統
- HiveServer2 檔案描述符洩漏HiveServer
- 檔案系統基礎
- Mac的檔案系統Mac
- 論Linux檔案系統Linux
- Linux AUFS 檔案系統Linux
- exFAT 檔案系統指南