共用方式為


_access _waccess

判斷檔案是否唯讀與否。 更安全版本都可使用; see _access_s _waccess_s.

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

參數

  • path
    檔案或目錄的路徑。

  • mode
    讀/寫屬性。

傳回值

如果檔案中有指定的模式,每個函式會傳回 0。 函式會傳回 – 1,如果命名的檔案不存在或沒有指定的模式。 如此一來, errno已設定下表所示。

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

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

  • EINVAL
    不正確的參數。

如需有關這些及其他的傳回碼的詳細資訊,請參閱 _doserrno、 errno、 _sys_errlist,以及 _sys_nerr

備註

檔案,搭配使用**_access函式會判斷是否指定的檔案或目錄存在,並具有屬性的值所指定mode。 與目錄一起使用時_access**只會決定是否存在於指定的目錄。 在Windows 2000與稍後操作系統,所有的目錄擁有讀取和寫入存取權限。

mode 值

檢查檔案

00

只存在

02

唯寫屬性

04

唯讀

06

讀取和寫入

這個函式只會檢查檔案及目錄是否為唯讀,它並不會檢查檔案系統的安全性設定。 您必須對存取權杖。 如需有關檔案系統安全性的詳細資訊,請參閱的存取權杖。 ATL 類別可用來提供這項功能。 see CAccessToken 類別.

_waccess寬字元版本的**_access**。 path引數為**_waccess是寬字元字串。 _waccess_access**其他方式完全相同。

這個函式會驗證它的參數。 如果path是NULL或mode並未指定有效的模式中,不正確的參數處理常式會叫用,如所述參數驗證。 如果執行,則允許繼續執行,此函式會將errno到EINVAL ,並傳回-1。

泛用文字常式對應

Tchar.h 常式

_Unicode 之後,未定義的 _MBCS

定義的 _MBCS

定義 _unicode 之後

_taccess

_access

_access

_waccess

需求

常式

所需的標頭

選擇性標頭

_access

<io.h>

<errno.h>

_waccess

<wchar.h> 或者 <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 對等用法

System.IO.FileAccess

請參閱

參考

檔案處理

_chmod _wchmod

_fstat、 _fstat32、 _fstat64、 _fstati64、 _fstat32i64、 _fstat64i32

_open _wopen

_stat,_wstat 函式