C語言中建立和刪除檔案串連的相關函數講解_C 語言

來源:互聯網
上載者:User

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 存取錯誤。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.