程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 詳解C說話中symlink()函數和readlink()函數的應用

詳解C說話中symlink()函數和readlink()函數的應用

編輯:關於C++

詳解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 途徑中的目次存在但卻非真實的目次。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved