-
unlink
鎖定
unlink是一個計算機函數,刪除一個文件的目錄項並減少它的鏈接數,若成功則返回0,否則返回-1,錯誤原因存於error。
- 外文名
- unlink
- 函數原型
- int unlink()
- 所屬庫
- const char * pathname
- 相關函數
- link,rename
unlink函數簡介
函數名稱:unlink
: );
頭文件:unistd.h(在WIN32系統中為windows.h)
如果想通過調用這個函數來成功刪除文件,你就必須擁有這個文件的所屬目錄的寫和執行權限。
,remove
unistd.h的宏定義
#ifdef WIN32 #include <windows.h> #else #include <unistd.h> #endif
unlink()會刪除參數pathname指定的文件。如果該文件名為最後連接點,但有其他進程打開了此文件,則在所有關於此文件的文件描述詞皆關閉後才會刪除。如果參數pathname為一符號連接,則此連接會被刪除。
返回值 成功則返回0,失敗返回-1,錯誤原因存於errno
錯誤代碼 EROFS 文件存在於只讀文件系統內
EFAULT 參數pathname指針超出可存取內存空間
ENAMETOOLONG 參數pathname太長
ENOMEM 核心內存不足
ELOOP 參數pathname 有過多符號連接問題
EIO I/O 存取錯誤
unlink程序示例
示例1
#include<unistd.h> #include<stdio.h> int main(void) { FILE *fp = fopen("junk.jnk","w"); int status; fprintf(fp,"junk"); status = access("junk.jnk",0); if (status == 0) printf("File exists\n"); else printf("File doesn't exist\n"); fclose(fp); unlink("junk.jnk"); status = access("junk.jnk",0); if (status == 0) printf("File exists\n"); else printf("File doesn't exist\n"); return 0; }