_access_s, _waccess_s

确定文件读取/写入权限。 这是 _access, _waccess 的版本与安全增强的 CRT中的安全功能如中所述。

errno_t _access_s( 
   const char *path, 
   int mode 
);
errno_t _waccess_s( 
   const wchar_t *path, 
   int mode 
);

参数

  • path
    文件或目录路径。

  • mode
    权限集。

返回值

文件,则与给定模式,每个函数返回 0。 函数返回错误代码,如果名称文件不存在或不可访问该特定模式。 在这种情况下,函数返回从如下所示设置的错误代码并设置 errno 为相同的值。

  • EACCES
    访问被拒绝。 文件的权限集不允许指定的访问。

  • ENOENT
    未找到的文件名或路径。

  • EINVAL
    参数无效。

有关更多信息,请参见 errno、_doserrno、_sys_errlist和_sys_nerr

备注

当用于文件, _access_s 功能来确定指定的文件是否存在并且可以访问如指定由 mode的值。 当使用与目录, _access_s 来确定指定的目录仅是否存在。 在 Windows 2000 和更高版本的操作系统,所有目录读取和写入。

模式值

检查文件。

00

仅存在。

02

写入权限。

04

读取权限。

06

读取和写入权限。

权限读取或写入文件并不能保证能够的足够打开文件。 例如,因此,如果文件正由另一个锁的过程,这可能是不可访问,即使 _access_s 返回 0。

_waccess_s_access_s的宽字符版本,为 _waccess_s 的 path 参数是宽字符字符串。 否则, _waccess_s_access_s 具有相同的行为。

这些功能验证其参数。 如果 path 是 NULL 或 mode 不指定有效的模式,无效参数调用处理程序,如 参数验证所述。 如果执行允许继续,对 EINVAL 的这些功能集 errno 和返回 EINVAL。

一般文本例程映射

Tchar.h 实例

未定义的 _UNICODE 和 _MBCS

定义的 _MBCS

定义的 _UNICODE

_taccess_s

_access_s

_access_s

_waccess_s

要求

实例

必需的头

可选标头

_access_s

io.h

errno.h

_waccess_s

wchar.h 或 io.h

errno.h

示例

此示例使用 _access_s 检查名为 crt_access_s.c 的文件看它是否存在,并编写是否允许。

// crt_access_s.c

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

int main( void )
{
    errno_t err = 0;

    // Check for existence. 
    if ((err = _access_s( "crt_access_s.c", 0 )) == 0 )
    {
        printf_s( "File crt_access_s.c exists.\n" );

        // Check for write permission. 
        if ((err = _access_s( "crt_access_s.c", 2 )) == 0 )
        {
            printf_s( "File crt_access_s.c does have "
                      "write permission.\n" );
        }
        else
        {
            printf_s( "File crt_access_s.c does not have "
                      "write permission.\n" );
        }
    }
    else
    {
        printf_s( "File crt_access_s.c does not exist.\n" );
    }
}
      

.NET Framework 等效项

System.IO.FileAccess

请参见

参考

文件处理

_access, _waccess

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat, _wstat功能