_access
, , _waccess
t_access
Определяет, доступен ли файл только для чтения или нет. Доступны более безопасные версии; see _access_s
, _waccess_s
.
Дополнительные сведения см. в _taccess
сопоставлениях функций универсального текста.
Синтаксис
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Параметры
path
Путь к файлу или каталогу.
mode
Атрибут чтения и записи.
Возвращаемое значение
Если файл имеет заданный режим, все функции возвращают значение 0. Функция возвращает значение -1, если именованный файл не существует или не имеет заданного режима; В этом случае задано значение, errno
как показано в следующей таблице.
значение | Описание |
---|---|
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
_fstati64
_fstat64
_fstat32i64
,_fstat64i32
_open
, _wopen
_stat
, _wstat
функции