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


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

renameat() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

renameat - 重新命名相對於目錄檔案描述符的檔案

語法

#include <stdio.h> 

int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath);

描述

renameat() 系統呼叫與 rename(2) 的操作方式完全相同,除了本手冊頁中描述的差異。

如果 oldpath 中給出的路徑名是相對路徑,則將其解釋為相對於檔案描述符 olddirfd 所引用的目錄(而不是相對於呼叫程序的當前工作目錄,rename(2) 對相對路徑名就是這樣做的)。

如果 oldpath 中給出的路徑名是相對路徑,並且 olddirfd 是特殊值 AT_FDCWD,則 oldpath 相對於呼叫程序的當前工作目錄進行解釋(如 rename(2))。

如果 oldpath 中給出的路徑名是絕對路徑,則忽略 olddirfd

newpath 的解釋與 oldpath 相同,只是相對路徑名相對於檔案描述符 newdirfd 所引用的目錄進行解釋。

返回值

成功時,renameat() 返回 0。錯誤時,返回 -1 並且 errno 被設定為指示錯誤。

錯誤

rename(2) 發生的相同錯誤也可能發生在 renameat() 中。以下附加錯誤可能發生在 renameat() 中
標籤描述
EBADF olddirfdnewdirfd 不是有效的檔案描述符。
ENOTDIR
  oldpath 是相對路徑,並且 olddirfd 是一個檔案描述符,引用的是除目錄以外的檔案;或者類似於 newpathnewdirfd

注意

請參閱 openat(2) 以瞭解 renameat() 的必要性。

符合標準

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

版本

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

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.