C語言link()函數:建立文件連接
頭文件:
#include <unistd.h>
定義函數:
int link (const char * oldpath, const char * newpath);
函數說明:link()以參數newpath 指定的名稱來建立一個新的連接(硬連接)到參數oldpath 所指定的已存在文件. 如果參數newpath 指定的名稱為一已存在的文件則不會建立連接.
返回值:成功則返回0, 失敗返回-1, 錯誤原因存于errno.
附加說明:link()所建立的硬連接無法跨越不同文件系統, 如果需要請改用symlink().
錯誤代碼:
1、EXDEV 參數oldpath 與newpath 不是建立在同一文件系統.
2、EPERM 參數oldpath 與newpath 所指的文件系統不支持硬連接
3、EROFS 文件存在于只讀文件系統內
4、EFAULT 參數oldpath 或newpath 指針超出可存取內存空間.
5、ENAMETOLLONG 參數oldpath 或newpath 太長
6、ENOMEM 核心內存不足
7、EEXIST 參數newpath 所指的文件名已存在.
8、EMLINK 參數oldpath 所指的文件已達最大連接數目.
9、ELOOP 參數pathname 有過多符號連接問題
10、ENOSPC 文件系統的剩余空間不足.
11、EIO I/O 存取錯誤.
范例:
/* 建立/etc/passwd 的硬連接為pass */#include <unistd.h>main(){ link("/etc/passwd", "pass");}
C語言unlink()函數:刪除文件
頭文件:
#include <unistd.h>
定義函數:
int unlink(const char * pathname);
函數說明:unlink()會刪除參數pathname 指定的文件. 如果該文件名為最后連接點, 但有其他進程打開了此文件, 則在所有關于此文件的文件描述詞皆關閉后才會刪除. 如果參數pathname 為一符號連接, 則此連接會被刪除。
返回值:成功則返回0, 失敗返回-1, 錯誤原因存于errno
錯誤代碼:
1、EROFS 文件存在于只讀文件系統內。
2、EFAULT 參數pathname 指針超出可存取內存空間。
3、ENAMETOOLONG 參數pathname 太長。
4、ENOMEM 核心內存不足。
5、ELOOP 參數pathname 有過多符號連接問題。
6、EIO I/O 存取錯誤。
新聞熱點
疑難解答
圖片精選