函數原型:函數
#include <unistd.h> int symlink(const char * oldpath, const char * newpath);
函數說明:測試
symlink()以參數newpath 指定的名稱來創建一個新的鏈接(符號鏈接)到參數oldpath 所指定的已存在文件. 參數oldpath 指定的文件不必定要存在, 若是參數newpath 指定的名稱爲一已存在的文件則不會創建鏈接.spa
返回值:指針
成功則返回0, 失敗返回-1, 錯誤緣由存於errno.code
錯誤代碼:blog
一、EPERM 參數oldpath 與newpath 所指的文件系統不支持符號鏈接。內存
二、EROFS 欲測試寫入權限的文件存在於只讀文件系統內。原型
三、EFAULT 參數oldpath 或newpath 指針超出可存取內存空間。io
四、ENAMETOOLONG 參數oldpath 或newpath 太長。class
五、ENOMEM 核心內存不足。
六、EEXIST 參數newpath 所指的文件名已存在。
七、EMLINK 參數oldpath 所指的文件已達到最大鏈接數目。
八、ELOOP 參數pathname 有過多符號鏈接問題。
九、ENOSPC 文件系統的剩餘空間不足。
十、EIO I/O 存取錯誤。
實例:
/*** symlink.c ***/ #include<unistd.h> #include<errno.h> #include<stdio.h> int main() { int iRet = symlink("/etc/passwd","pass"); if (0 == iRet) { printf("symlink success \n"); } else { perror("symlink err"); } return 0; }
運行結果: