Поделиться через


_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, and _sys_nerr.

Заметки

При использовании с файлами, функция _access_s определяет существует ли указанный файл и можно ли получить к нему доступ, используя указанный режим mode. При использовании с каталогами, _access_s определяет существует ли указанный каталог. В Windows 2000 и последующих версиях операционных систем все каталоги имеют доступ для чтения и записи.

значение режима

Проверяет файл

00

Только на существование.

02

Разрешение на запись.

04

Разрешение на чтение.

06

Разрешение на чтение и запись.

Разрешения на чтение или запись файла не достаточно для того, чтобы убедиться в возможности открыть файл. Например, если файл блокирован другим процессом, он может быть недоступен, даже если _access_s возвращает 0.

_waccess_s — двухбайтовая версия _access_s, где аргумент path для _waccess_s - строка двухбайтовых знаков. В противном случае поведение _waccess_s и _access_s идентично.

Эти функции проверяют свои параметры. Если path равно NULL, или mode не определяет допустимый режим, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают 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

FileAccess

См. также

Ссылки

Обработка файлов

_access, _waccess

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

Функции _stat, _wstat