_access
, , _waccess
, t_access
Determina si un archivo es de solo lectura o no. Existen versiones más seguras; vea _access_s
, _waccess_s
.
Para _taccess
, consulte Asignaciones de funciones de texto genérico.
Sintaxis
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Parámetros
path
Ruta de acceso del directorio o archivo.
mode
Atributo de lectura y escritura.
Valor devuelto
Cada función devuelve 0 si el archivo tiene el modo especificado. La función devuelve -1 si el archivo con nombre no existe o no tiene el modo especificado; en este caso, errno
se establece como se muestra en la tabla siguiente.
Valor | Descripción |
---|---|
EACCES |
Acceso denegado: la configuración de permisos del archivo no permite el acceso especificado. |
ENOENT |
No se encuentra el nombre o la ruta de acceso del archivo. |
EINVAL |
El parámetro no es válido. |
Para obtener más información sobre estos y otros códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
Cuando se usa con archivos, la función _access
determina si el archivo o el directorio especificado existe y si tiene los atributos que especifica el valor de mode
. Cuando se usa con directorios, _access
solo determina si existe el directorio especificado; en Windows 2000 y sistemas operativos posteriores, todos los directorios tienen acceso de lectura y escritura.
Valor de mode |
Comprueba el archivo para |
---|---|
00 | Solo existencia |
02 | Solo escritura |
04 | Solo lectura |
06 | Lectura y escritura |
Esta función solo comprueba si el archivo y el directorio son de solo lectura o no, no comprueba la configuración de seguridad del sistema de archivos. Para eso necesita un token de acceso. Para obtener más información sobre la seguridad del sistema de archivos, consulte Tokens de acceso. Existe una clase ATL que proporciona esta funcionalidad; consulte Clase CAccessToken
.
_waccess
es una versión con caracteres anchos de _access
; el argumento path
para _waccess
es una cadena de caracteres anchos. Por lo demás,_waccess
y _access
se comportan de forma idéntica.
Esta función valida sus parámetros. Si path
es NULL
o mode
no especifica un modo válido, se invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, la función establece errno
en EINVAL
y devuelve -1.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de funciones de texto genérico
Rutina Tchar.h |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_taccess |
_access |
_access |
_waccess |
Requisitos
Routine | Encabezado necesario | Encabezados opcionales |
---|---|---|
_access |
<io.h> |
<errno.h> |
_waccess |
<wchar.h> o <io.h> |
<errno.h> |
Ejemplo
En este ejemplo se usa _access
para comprobar el archivo denominado crt_ACCESS.C
, para ver si existe y si se permite la escritura.
// 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.
Consulte también
Control de archivos
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, , _fstat32i64
, _fstat64i32
_open
, _wopen
Funciones _stat
, _wstat