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


_access_s, , _waccess_s_taccess_s

Определяет разрешения на чтение и запись файлов. Эти функции — это версии с улучшениями безопасности, _waccessкак описано в функциях безопасности в CRT._access

Дополнительные сведения см. в _taccess_sсопоставлениях функций универсального текста.

Синтаксис

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

Параметры

path
Путь к файлу или каталогу.

mode
Настройка разрешений.

Возвращаемое значение

Если файл имеет заданный режим, все функции возвращают значение 0. Функция возвращает код ошибки, если именованный файл не существует или недоступен в заданном режиме. Код ошибки выбирается из набора описанным ниже образом и присваивает errno такое же значение.

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

Дополнительные сведения см. в разделе errno, _doserrno, _sys_errlist, и _sys_nerr.

Замечания

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

Значение mode Проверяет файл на
00 Существование.
02 Разрешение на запись.
04 Разрешение на чтение.
06 Разрешение на чтение и запись.

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

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

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

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

Сопоставления функций универсального текста

Функция в столбце сопоставляется с функцией в tchar.h других столбцах в зависимости от набора символов, определенного во время компиляции.

Функция 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>

Пример

В этом примере для проверки файла с именем crt_access_s.на существование и возможность записи используется _access_s.

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

См. также

Обработка файлов
_access, _waccess
_chmod, _wchmod
_fstat, , _fstat32_fstati64_fstat64_fstat32i64,_fstat64i32
_open, _wopen
_stat, _wstat функции