c語言中unlink()函式詳解

2021-08-28 21:34:27 字數 758 閱讀 2694

標頭檔案:#include

定義函式:int unlink(const char * pathname);

函式說明:unlink()會刪除引數pathname 指定的檔案. 如果該檔名為最後連線點, 但有其他程序開啟了此檔案, 則在所有關於此檔案的檔案描述詞皆關閉後才會刪除. 如果引數pathname 為一符號連線, 則此連線會被刪除。

返回值:成功則返回0, 失敗返回-1, 錯誤原因存於errno

錯誤**:

1、erofs 檔案存在於唯讀檔案系統內。

2、efault 引數pathname 指標超出可訪問記憶體空間。

3、enametoolong 引數pathname 太長。

4、enomem 核心記憶體不足。

5、eloop 引數pathname 有過多符號連線問題。

6、eio i/o 訪問錯誤。

我們知道linux中檔案是用inode節點來區分檔案的,當我們刪除乙個檔案的時候並不一定系統就會釋放inode節點的內容。當滿足下面的要求的時候系統才會釋放inode節點的內容

使用unlink函式刪除檔案的時候,只會刪除 目錄項 ,並且將inode節點的硬鏈結數目減一而已,並不一定會釋放inode節點。

如果此時沒有程序正在開啟該檔案或者有其他檔案指向該inode節點,該inode節點將會被釋放;如果此時有程序正在開啟乙個檔案,而此時使用unlink刪除了該檔案,那麼此時只是刪除了目錄項,並沒有釋放,因為此時仍然有程序在開啟這個檔案

臨時檔案可以用在程序間通訊中的 有名管道 通訊中

C語言中的unlink函式

功能 刪除乙個名字 某些情況下刪除這個名字所指向的檔案 標頭檔案 include 函式原型 int unlink const char pathname 功能詳解 unlink從檔案系統中中刪除乙個名字,若這個名字是指向這個檔案的最後乙個鏈結,並且沒有程序處於開啟這個檔案的狀態,則刪除這個檔案,釋放...

C 語言unlink 函式

標頭檔案 include 定義函式 int unlink const char pathname 函式說明 unlink 會刪除引數pathname 指定的檔案.如果該檔名為最後連線點,但有其他程序開啟了此檔案,則在所有關於此檔案的檔案描述詞皆關閉後才會刪除.如果引數pathname 為一符號連線,...

unlink函式詳解

unlink系統呼叫 功能描述 從檔案系統中刪除乙個名稱。如果名稱是檔案的最後乙個連線,並且沒有其它程序將檔案開啟,名稱對應的檔案會實際被刪除。用法 include int unlink const char pathname 引數 pathname 指向需解除連線的檔名。返回說明 成功執行時,返回...