Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет разрешения на чтение и запись файлов. Эти функции — это версии с улучшениями безопасности, _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 функции