_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
См. также
Ссылки
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32