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

