頭文件
#include <unistd.h>
函數原型
int link (const char * oldpath,const char * newpath);
說明
link()以參數newpath指定的名稱來建立壹個新的連接(硬連接)到參數oldpath所指定的已存在文件。如果參數newpath指定的名稱為壹已存在的文件則不會建立連接。函數在執行成功時則返回0,失敗時則返回-1,錯誤原因存於errno。 link()所建立的硬連接無法跨越不同文件系統,如果需要請改用symlink()。
errno錯誤代碼:
EXDEV 參數oldpath與newpath不是建立在同壹文件系統。
EPERM 參數oldpath與newpath所指的文件系統不支持硬連接
EROFS 文件存在於只讀文件系統內
EFAULT 參數oldpath或newpath 指針超出可存取內存空間。
ENAMETOLLONG 參數oldpath或newpath太長
ENOMEM 核心內存不足
EEXIST 參數newpath所指的文件名已存在。
EMLINK 參數oldpath所指的文件已達最大連接數目。
ELOOP 參數pathname有過多符號連接問題
ENOSPC 文件系統的剩余空間不足。
EIO I/O 存取錯誤。
範例
/* 建立/etc/passwd 的硬連接為pass */ #include<unistd.h>main(){link(/etc/passwd,pass);}