硬鏈結
第3列的數叫硬鏈結數(有幾個檔名對應著同乙個inode,就叫硬鏈結數為幾)
當前目錄.的inode和上一級目錄home下的admin是一樣的
硬鏈結好處:兩個檔名指向同乙個索引號,指向的資料是一樣的,此時day10.txt不小!心被刪掉了,引用計數(硬鏈結數)減少1(此時不為0),系統便知道還有檔案指向這些資料,便不會把它刪掉,所以它還在。
軟鏈結
用ln -s 命令可以生成乙個軟鏈結,如下:
[root@linux236 test]# ln -s source_file softlink_file
*靜態庫
靜態庫:將所有的.o檔案打包
生成靜態庫的步驟:
1.寫原始檔,通過 gcc -c ***.c 生成目標檔案。
2.用 ar 歸檔目標檔案(ar -rc lib**.a add.o sub.o),生成靜態庫。
3.配合靜態庫,寫乙個使用靜態庫中函式的標頭檔案。
4.使用靜態庫時,在原始碼中包含對應的標頭檔案,鏈結時記得鏈結自己的庫。
在測試靜態庫時,編譯main.c :
gcc main.c -l. -l**(庫名)
上面的命令中 -l. 告訴 gcc 搜尋鏈結庫時包含當前路徑, -l** 告訴 gcc 生成可執行程式時要鏈結 lib**.a
我寫了兩個加法減法函式的原始檔,整個生成靜態庫的過程如下
在執行時可以把靜態庫刪掉,鏈結時已經把**放到了a.out裡
動態庫
windows下,一般稱為動態庫。linux下一般稱為共享庫。
動態庫:節省物理記憶體空間
此處擴充套件一下:動態庫是可執行的檔案.elf,靜態庫是不可執行的.
linux中的四種elf:
.o core(程式崩掉時產生core檔案)
.so
可執行程式
製作動態庫***(庫名)lib***.so (庫檔名)
軟鏈結 硬鏈結 靜態庫 動態庫
跟原始檔沒區別,通過相同的 inode 節點訪問到檔案資料 乙個檔案別名 建立 建立硬鏈結檔案 ln tmp.txt tmp.hard 建立軟鏈結檔案 ln s tmp.txt tmp.soft 區別 刪除原始檔,硬鏈結檔案的鏈結數 1,並沒有刪除檔案,只有當 inode 0 才會徹底刪除 軟連線檔...
硬鏈結與軟鏈結
1.linux 鏈結概念 linux 鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在 linux 的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱...
軟鏈結與硬鏈結
linux unix中有兩種鏈結,硬鏈結和軟鏈結,均由ln命令來建立。軟鏈結1ln ssource target 建立source檔案的軟鏈結target 123 456dutor dutor desktop ln s gvim.tgz gvim dutor dutor desktop ln s h...