詳解C說話中symlink()函數和readlink()函數的應用。本站提示廣大學習愛好者:(詳解C說話中symlink()函數和readlink()函數的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是詳解C說話中symlink()函數和readlink()函數的應用正文
C說話symlink()函數:樹立文件符號銜接
頭文件:
#include <unistd.h>
界說函數:
int symlink(const char * oldpath, const char * newpath);
函數解釋:symlink()以參數newpath 指定的稱號來樹立一個新的銜接(符號銜接)到參數oldpath 所指定的已存在文件. 參數oldpath 指定的文件紛歧定要存在, 假如參數newpath 指定的稱號為一已存在的文件則不會樹立銜接.
前往值:勝利則前往0, 掉敗前往-1, 毛病緣由存於errno.
毛病代碼:
1、EPERM 參數oldpath 與newpath 所指的文件體系不支撐符號銜接。
2、EROFS 欲測試寫入權限的文件存在於只讀文件體系內。
3、EFAULT 參數oldpath 或newpath 指針超越可存取內存空間。
4、ENAMETOOLONG 參數oldpath 或newpath 太長。
5、ENOMEM 焦點內存缺乏。
6、EEXIST 參數newpath 所指的文件名已存在。
7、EMLINK 參數oldpath 所指的文件已到達最年夜銜接數量。
8、ELOOP 參數pathname 有過量符號銜接成績。
9、ENOSPC 文件體系的殘剩空間缺乏。
10、EIO I/O 存取毛病。
典范
#include <unistd.h> main() { symlink("/etc/passwd", "pass"); }
C說話readlink()函數:獲得符號銜接所指的文件
頭文件:
#include <unistd.h>
界說函數:
int readlink(const char * path, char * buf, size_t bufsiz);
函數解釋:readlink()會將參數path 的符號銜接內容存到參數buf 所指的內存空間, 前往的內容不是以NULL作字符串開頭, 但會將字符串的字符數前往. 若參數bufsiz 小於符號銜接的內容長度, 太長的內容會被截斷.
前往值:履行勝利則傳符號銜接所指的文件途徑字符串, 掉敗則前往-1, 毛病代碼存於errno.
毛病代碼:
1、EACCESS 取文件時被謝絕, 權限不敷。
2、EINVAL 參數bufsiz 為正數。
3、EIO I/O 存取毛病。
4、ELOOP 欲翻開的文件有過量符號銜接成績。
5、ENAMETOOLONG 參數path 的途徑稱號太長。
6、ENOENT 參數path 所指定的文件不存在。
7、ENOMEM 焦點內存缺乏。
8、ENOTDIR 參數path 途徑中的目次存在但卻非真實的目次。