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


_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 как показано в следующей таблице.

значение Description
EACCES Доступ запрещен: параметр разрешения файла не разрешает указанный доступ.
ENOENT Имя файла или путь не найдены.
EINVAL Недопустимый параметр .

Дополнительные сведения об этих и других кодах возврата см. в разделе errno, _doserrnoи _sys_nerr_sys_errlist.

Замечания

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

Значение mode Проверяет файл на
00 Существование
02 Только запись
04 Только для чтения
06 Чтение и запись

Эта функция проверка, только если файл и каталог доступны только для чтения или нет, он не проверка параметрами безопасности файловой системы. Для этого требуется токен доступа. Дополнительные сведения о безопасности файловой системы см. в разделе "Маркеры доступа". Класс ATL существует для предоставления этой функции; см CAccessToken . класс.

_waccess — это версия _accessс расширенными символами; аргумент path для _waccess — строка расширенных символов. Поведение_waccess и _access идентично в противном случае.

Эта функция проверяет свои параметры. Если path этот NULL режим не указан или mode не указан, вызывается обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, функция устанавливает параметр errno в значение EINVAL и возвращает –1.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Сопоставления подпрограмм универсального текста

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" );
    }
}
File crt_ACCESS.C exists.
File crt_ACCESS.C does not have write permission.

См. также

Обработка файлов
_chmod, _wchmod
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
_open, _wopen
_stat, _wstat функции