首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言判斷文件是否存在:access() 函數詳解

     編輯:關於C語言

C 語言判斷文件是否存在:access() 函數詳解

函數原型

#include <io.h>        // Windows/Unix 通用頭文件 (Unix 為 <unistd.h>)
int access(const char *filename, int amode);

參數 amode 取值

值含義
00 (或 F_OK)檢查文件存在性。存在返回 0,不存在返回 -1。
04 (R_OK)檢查讀權限。
02 (W_OK)檢查寫權限。
06檢查讀寫權限。
01 (X_OK)檢查執行權限。

優勢對比

fopen(path, "r") 判斷存在性有缺陷:無讀權限時也會失敗。
access() 僅檢查元數據,**無讀權限也能正確判斷文件是否存在**。

代碼示例 1:基本用法

#include <stdio.h>
#include <io.h>

int main() {
    printf("access result: %d\n", access("111", 0)); // 0 存在, -1 不存在
    return 0;
}

代碼示例 2:完整權限檢查 (MSDN 風格)

#include <io.h>
#include <stdio.h>
#include <stdlib.h>

void main(void) {
    // 檢查存在性
    if (_access("ACCESS.C", 0) != -1) {
        printf("File ACCESS.C exists\n");
        // 檢查寫權限
        if (_access("ACCESS.C", 2) != -1)
            printf("File ACCESS.C has write permission\n");
    }
}
/* Output:
File ACCESS.C exists
File ACCESS.C has write permission
*/

註:Windows 下常用下劃線版 _access,行為一致。Unix/Linux 直接用 access,需包含 <unistd.h>。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved