符號鏈接文件和硬鏈接文件

□□實驗6-11.針對符號連接文件和硬連接文件。

測試以下函數,分析其執行過程並給出結論。

link(),unlink(),symlink(),readlink(),stat(),lstat()


1.Stat();lstat();


分析:b文件爲a文件的軟連接文件,從實驗測試可以看出用stat();函數測試b文件顯示的權限爲文件a的權限,用lstat();函數測試b文件顯示的權限爲自身權限。

  結論:如果stat函數的第一個參數爲符號連接文件,其讀取的屬性爲源文件屬性,如果要獲取連接文件自身的屬性,要調用lstat函數。

 

2.link();


分析:用link函數創建新文件a,刪除abc文件後,a文件還能查看其內容。

結論:用link函數創建的文件爲硬鏈接文件,刪除源文件也可以運行。


3.unlink();



分析:先確保沒有a文件,創建abc文件的硬鏈接文件a,調用unlink函數刪除源文件abc後查看結果,在創建a文件後文件屬性硬鏈接數爲2,刪除源文件abc後文件屬性硬鏈接數爲1。

結論:unlink函數是將該文件屬性的硬鏈接數自動減1,但是絕大多數文件硬鏈接數爲1,所以減1後即爲刪除。


4.symlink(); 


分析:用symlink函數創建的新文件sym_link_test,當刪除源文件abc時,則不能查看文件sym_link_test的內容。

總結:symlink函數的功能是創建符號連接文件。


5.readlink();



分析:用readlink函數,測試後顯示符號連接文件sym_link_test的源文件名稱。

總結:readlink函數的功能是講指定符號連接文件的源文件路徑讀入到buf中。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章