linux文件操作相关函数
(1)stat函數(shù):顯示文件的相關信息(類似于 ls -l的感覺)
? ? ? ? ?頭文件及函數(shù)原型:
? ? ? ? ?
? ? ? ? 函數(shù)參數(shù):path:文件的路徑,buf是指待寫入的文件信息,fd:表示文件描述符;
? ? ? ? stat,fstat,lstat三者的區(qū)別在于:fstat是系統(tǒng)調用函數(shù),不可以移植,第一個參數(shù)為文件描述符,需要用open的返回值獲得。其他兩個的第一個參數(shù)均為文件的路徑,三個函數(shù)的第二個參數(shù)均是一個結構體,用來表示文件的各種信息;另外lstat(帶l的具不具備穿透性)不具有穿透性,即如果打開的文件是一個軟連接(快捷方式),它不具備追蹤到最終的文件功能。
? ? ? ?返回值:成功(0),失敗(-1);
? ? ? ?結構體stat如下:
? ? ? ? ?
? ? ? ?其中重要參數(shù):st_mode代表著文件的權限和文件的類型,其結構如下:
? ? ??
(2)access函數(shù):測試指定文件是否有某個權限
? ? ? ? 頭文件及函數(shù)原型:
? ? ? ?
? ? ?函數(shù)參數(shù):pathname:文件的路勁,mode:權限類別,R_OK,W_OK,X_OK,F_OK(判斷文件是否存在)
? ? 返回值:成功(0),失敗(-1);
(3)chmod函數(shù):修改文件的權限
? ? ? ?函數(shù)頭文件及函數(shù)原型:
? ? ? ??
? ? ?參數(shù):path/fd:文件的路徑/文件描述符,mode:文件的權限,為一個八進制的數(shù)
? ? 返回值:成功(0),失敗(-1);
(4)chown:改變文件所有者
? ? ? ?函數(shù)頭文件及函數(shù)原型:
? ? ? ?
? ? ?參數(shù):path/fd:文件的路徑/文件描述符;owner/group:修改文件的所有者及所屬組(所有者及所屬組必須存在,可在/etc/passwd中查找所有的owner/group)
? ? ? 返回值:同上
?(5)truncate函數(shù):指定文件的大小,如果超過指定大小,則多余數(shù)據(jù)會被刪除,可用作擴展(擴展后不用寫數(shù)據(jù),區(qū)別于lseek)
? ? ? ?函數(shù)頭文件及原型:
? ? ? ? ? ? ? ??
? ? ? ???參數(shù):path/fd:文件的路徑/文件描述符,length為指定的長度;
? ? ? ? ?返回值:同上;
(6)link函數(shù):創(chuàng)建一個硬連接;
? ? ? ?函數(shù)原型及頭文件:
? ?
? ? ?函數(shù)參數(shù):新的文件路徑,舊的文件路徑,指向投一個inode;
? ? 返回值:同上;
(7)syslink:創(chuàng)建軟連接? ? ?
? ? ?函數(shù)原型及頭文件:
?
? ?函數(shù)參數(shù):新的文件路徑,舊的文件路徑;
? ?返回值:同上;
(8) readlink:讀取軟鏈接的文件名而非內容
? ?函數(shù)原型及頭文件:
函數(shù)參數(shù):path:文件的路徑,buf:軟連接的文件名 ,bufsiz:軟連接的長度;
返回值;成功(軟連接的長度),失敗(-1);
(9)unlink:刪除一個文件目錄的鏈接數(shù)(記得目標必須要有執(zhí)行權限才能進入目錄)
? ? 函數(shù)頭文件及原型:
? ?
函數(shù)參數(shù):文件或目錄的路徑
返回值:同上
使用注意事項:如果是軟連接,則刪除軟連接;如果是硬連接,則連接數(shù)-1;
如果硬連接數(shù)為0,并且已經(jīng)打開這個文件,且有文件描述符,則當該進程關閉該文件的時候,內核才真正刪除這個文件;可以利用這個屬性創(chuàng)建臨時文件(類似緩存的概念,先open/create一個文件,然后立馬unlink)
(10)rename:文件重命名
? ? 函數(shù)頭文件及原型:
函數(shù)參數(shù):舊文件路徑,新文件路徑
返回值:同上
功能介紹:摘錄https://blog.csdn.net/sprintfwater/article/details/45336615的翻譯:
? ? ? ? ? ?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的linux文件操作相关函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成都大熊猫繁育研究基地必须7点去吗
- 下一篇: linux目录操作函数