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


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

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

symlink() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

symlink - 為檔案建立新名稱

語法

#include <unistd.h>

int symlink(const char *oldpath, const char *newpath);

描述

symlink() 建立一個名為 newpath 的符號連結,其中包含字串 oldpath

符號連結在執行時被解釋為,如果連結的內容已替換為正在跟隨的路徑以查詢檔案或目錄。

符號連結可能包含 .. 路徑元件,如果在連結的開頭使用,則引用該連結所在的父目錄。

符號連結(也稱為軟連結)可以指向現有檔案或不存在的檔案;後一種情況稱為懸空連結。

符號連結的許可權無關緊要;在跟隨連結時忽略所有權,但在請求刪除或重新命名連結並且連結位於設定了粘滯位 (S_ISVTX) 的目錄中時會檢查所有權。

如果 newpath 存在,則不會被覆蓋。

返回值

成功時,返回零。錯誤時,返回 -1,並且 errno 被相應地設定。

錯誤

標籤描述
EACCES 拒絕寫入包含 newpath 的目錄的訪問許可權,或者 newpath 的路徑字首中的一個目錄不允許搜尋許可權。(另請參閱 path_resolution(2)。)
EEXIST newpath 已經存在。
EFAULT oldpathnewpath 指向您可訪問的地址空間之外。
EIO 發生了 I/O 錯誤。
ELOOP 在解析 newpath 時遇到太多符號連結。
ENAMETOOLONG
  oldpathnewpath 太長。
ENOENT newpath 中的目錄元件不存在或是一個懸空符號連結,或者 oldpath 是空字串。
ENOMEM 核心記憶體不足。
ENOSPC 包含該檔案的裝置沒有足夠的空間來容納新的目錄條目。
ENOTDIR
 用作 newpath 中目錄的元件實際上不是目錄。
EPERM 包含 newpath 的檔案系統不支援建立符號連結。
EROFS newpath 位於只讀檔案系統上。

備註

不檢查 oldpath

刪除符號連結引用的名稱實際上會刪除該檔案(除非它還有其他硬連結)。如果不需要此行為,請使用 link()。

符合標準

SVr4、4.3BSD、POSIX.1-2001。有關具有相同名稱的多個檔案以及 NFS,請參閱 open(2)。

參見



previous next Printer Friendly

廣告


  

廣告



廣告