linkat() - Unix 和 Linux 系統呼叫 - 技術教學
Tutorials Point


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

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

linkat() - Unix 和 Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

linkat - 建立相對於目錄檔案描述符的檔案連結

語法

#include <unistd.h> 

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

描述

linkat() 系統呼叫與 link(2) 的操作方式完全相同,除了本手冊頁中描述的區別之外。

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

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

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

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

flags 引數當前未使用,必須指定為 0。

返回值

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

錯誤

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

備註

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

符合標準

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

版本

linkat() 在 Linux 核心 2.6.16 中新增。

參見



previous next Printer Friendly

廣告


  

廣告



廣告