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


_access, _waccess

Определяет, доступен ли файл только для чтения, или нет. Доступны более безопасные версии; см. раздел _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; см. раздел Класс 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

FileAccess

См. также

Ссылки

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

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

Функции _stat, _wstat