共用方式為


_access、_waccess

若要判斷檔案是否為唯讀 可用更安全的版本;請參閱 _access_s、_waccess_s

int _access( 
   const char *path, 
   int mode 
);
int _waccess( 
   const wchar_t *path, 
   int mode 
);

參數

  • path
    檔案或目錄的路徑。

  • mode
    讀取/寫入屬性。

傳回值

如果檔案具有特定模式,每個函式會傳回 0。 如果具名檔案不存在或沒有指定模式;在這種情況下,如下表所示 errno 設定,函式會傳回 1。

  • EACCES
    存取遭拒:檔案的使用權限設定不允許指定的權限。

  • ENOENT
    找不到檔案名稱或路徑。

  • EINVAL
    無效參數。

如需更多關於這些和其他回傳碼的資訊,請參閱 _doserrno 、 errno 、 _sys_errlist 、和 _sys_nerr (_doserrno, errno, _sys_errlist, and _sys_nerr)

備註

當使用檔案,則 _access 函式會判斷指定檔案或目錄是否存在且具有指定 mode的值的屬性。 當使用目錄 _access ,判斷指定的目錄是否存在;只有在 Windows 2000 (含) 以後版本的作業系統,所有目錄有讀取和寫入權限。

mode 值

檢查檔案。

00

只存在

02

唯寫

04

唯讀

06

讀取和寫入

這個函式只檢查是否檔案和目錄是唯讀的,它不會檢查檔案系統安全性設定。 對於您需要存取語彙基元。 如需檔案系統安全性的詳細資訊,請參閱 存取語彙基元。。 ATL 類別沒有提供這項功能;請參閱 CAccessToken Class

_waccess_access 的寬字元版本。 _waccess 的 path 引數是寬字元字串。 _waccess_access 其餘行為相同。

這個函式會驗證它的參數。 如果 path 是 NULL 或 mode 沒有指定有效的方式,無效的參數叫用處理常式,如 參數驗證中所述。 如果允許繼續執行,則函式會將 errno 設定為 EINVAL並傳回。

一般文字常式對應

Tchar.h 常式

未定義 _UNICODE and _MBCS

_MBCS 已定義

_UNICODE 已定義

_taccess

_access

_access

_waccess

需求

常式

必要的標頭

選擇性的標頭檔

_access

<io.h>

<errno.h>

_waccess

<wchar.h> or <io.h>

<errno.h>

範例

下列範例會使用 _access 檢查名為 crt_ACCESS.C 的檔案看它是否存在,還有寫入是否啟用。

// crt_access.c
// compile with: /W1
// This example uses _access to check the file named
// crt_ACCESS.C to see if it exists and if writing is allowed.

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

int main( void )
{
    // Check for existence.
    if( (_access( "crt_ACCESS.C", 0 )) != -1 )
    {
        printf_s( "File crt_ACCESS.C exists.\n" );

        // Check for write permission.
        // Assume file is read-only.
        if( (_access( "crt_ACCESS.C", 2 )) == -1 )
            printf_s( "File crt_ACCESS.C does not have write permission.\n" );
    }
}
  

.NET Framework 對等用法

FileAccess

請參閱

參考

檔案處理

_chmod、_wchmod

_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32

_open、_wopen

_stat、_wstat 函式