unlinkat() - Unix,Linux系統呼叫 - 技術教學
Tutorials Point


  Unix入門
  Unix Shell程式設計
  高階Unix
  Unix有用參考
  Unix有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於TP  

unlinkat() - Unix,Linux系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

unlinkat - 刪除相對於目錄檔案描述符的目錄條目

概要

#include <fcntl.h> 

int unlinkat(int dirfd, const char *pathname, int flags);

描述

unlinkat() 系統呼叫與 unlink(2) 或 rmdir(2) 的操作方式完全相同(取決於flags是否包含AT_REMOVEDIR標誌),但本手冊頁中描述的差異除外。

如果在pathname中給出的路徑名是相對路徑,則它相對於檔案描述符dirfd所引用的目錄進行解釋(而不是相對於呼叫程序的當前工作目錄,unlink(2) 和 rmdir(2) 對相對路徑名就是這樣做的)。

如果在pathname中給出的路徑名是相對路徑,並且dirfd是特殊值AT_FDCWD,則pathname相對於呼叫程序的當前工作目錄進行解釋(就像unlink(2) 和 rmdir(2) 一樣)。

如果在pathname中給出的路徑名是絕對路徑,則忽略dirfd

flags是一個位掩碼,可以指定為0,也可以透過按位或運算子將控制unlinkat()操作的標誌值組合在一起。目前只定義了一個這樣的標誌。

標籤描述
AT_REMOVEDIR 預設情況下,unlinkat() 執行等效於對pathname執行unlink(2) 的操作。如果指定了AT_REMOVEDIR標誌,則執行等效於對pathname執行rmdir(2) 的操作。

返回值

成功時,unlinkat() 返回0。發生錯誤時,返回-1,並設定errno以指示錯誤。

錯誤

unlink(2) 和 rmdir(2) 中發生的相同錯誤也可能發生在unlinkat() 中。以下附加錯誤可能發生在unlinkat() 中:

標籤描述
EBADF dirfd不是有效的檔案描述符。
EINVAL flags中指定了無效的標誌值。
ENOTDIR pathname是相對路徑,而dirfd是指向非目錄檔案的描述符。

備註

請參閱openat(2) 以瞭解unlinkat()的需求。

符合標準

此係統呼叫是非標準的,但建議將其包含在POSIX.1的未來修訂版中。Solaris上存在類似的系統呼叫。

版本

unlinkat() 在核心 2.6.16 中新增到 Linux。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.