詳解C語言中symlink()函數(shù)和readlink()函數(shù)的使用
C語言symlink()函數(shù):建立文件符號連接
頭文件:
#include <unistd.h>
定義函數(shù):
int symlink(const char * oldpath, const char * newpath);
函數(shù)說明:symlink()以參數(shù)newpath 指定的名稱來建立一個新的連接(符號連接)到參數(shù)oldpath 所指定的已存在文件. 參數(shù)oldpath 指定的文件不一定要存在, 如果參數(shù)newpath 指定的名稱為一已存在的文件則不會建立連接.
返回值:成功則返回0, 失敗返回-1, 錯誤原因存于errno.
錯誤代碼:
1、EPERM 參數(shù)oldpath 與newpath 所指的文件系統(tǒng)不支持符號連接。
2、EROFS 欲測試寫入權(quán)限的文件存在于只讀文件系統(tǒng)內(nèi)。
3、EFAULT 參數(shù)oldpath 或newpath 指針超出可存取內(nèi)存空間。
4、ENAMETOOLONG 參數(shù)oldpath 或newpath 太長。
5、ENOMEM 核心內(nèi)存不足。
6、EEXIST 參數(shù)newpath 所指的文件名已存在。
7、EMLINK 參數(shù)oldpath 所指的文件已達到最大連接數(shù)目。
8、ELOOP 參數(shù)pathname 有過多符號連接問題。
9、ENOSPC 文件系統(tǒng)的剩余空間不足。
10、EIO I/O 存取錯誤。
范例
#include <unistd.h> main() { symlink("/etc/passwd", "pass"); }
C語言readlink()函數(shù):取得符號連接所指的文件
頭文件:
#include <unistd.h>
定義函數(shù):
int readlink(const char * path, char * buf, size_t bufsiz);
函數(shù)說明:readlink()會將參數(shù)path 的符號連接內(nèi)容存到參數(shù)buf 所指的內(nèi)存空間, 返回的內(nèi)容不是以NULL作字符串結(jié)尾, 但會將字符串的字符數(shù)返回. 若參數(shù)bufsiz 小于符號連接的內(nèi)容長度, 過長的內(nèi)容會被截斷.
返回值:執(zhí)行成功則傳符號連接所指的文件路徑字符串, 失敗則返回-1, 錯誤代碼存于errno.
錯誤代碼:
1、EACCESS 取文件時被拒絕, 權(quán)限不夠。
2、EINVAL 參數(shù)bufsiz 為負數(shù)。
3、EIO I/O 存取錯誤。
4、ELOOP 欲打開的文件有過多符號連接問題。
5、ENAMETOOLONG 參數(shù)path 的路徑名稱太長。
6、ENOENT 參數(shù)path 所指定的文件不存在。
7、ENOMEM 核心內(nèi)存不足。
8、ENOTDIR 參數(shù)path 路徑中的目錄存在但卻非真正的目錄。
相關(guān)文章
一文掌握C++ const與constexpr及區(qū)別
C++ 11標準中,const 用于為修飾的變量添加“只讀”屬性而 constexpr關(guān)鍵字則用于指明其后是一個常量,編譯器在編譯程序時可以順帶將其結(jié)果計算出來,而無需等到程序運行階段,這樣的優(yōu)化極大地提高了程序的執(zhí)行效率,本文重點介紹C++ const與constexpr區(qū)別介紹,一起看看吧2024-02-02概述C++中的 public protected private friend關(guān)鍵字的用法
這篇文章簡要概述了C++中的 public protected private friend關(guān)鍵字的用法,非常不錯,具有參考借鑒價值,感興趣的朋友一起學習吧2016-08-08OpenCV使用稀疏光流實現(xiàn)視頻對象跟蹤的方法詳解
這篇文章主要為大家詳細介紹了OpenCV如何使用稀疏光流實現(xiàn)視頻對象跟蹤功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下2023-02-02