_access_s
, , _waccess_s
, _taccess_s
Determina los permisos de lectura y escritura del archivo. Estas funciones son versiones de _access
, _waccess
con mejoras de seguridad, como se describe en Características de seguridad de CRT.
Para _taccess_s
, consulte Asignaciones de funciones de texto genérico.
Sintaxis
errno_t _access_s(
const char *path,
int mode
);
errno_t _waccess_s(
const wchar_t *path,
int mode
);
Parámetros
path
Ruta de acceso del directorio o archivo.
mode
Configuración de permisos.
Valor devuelto
Cada función devuelve 0 si el archivo tiene el modo especificado. La función devuelve un código de error si el archivo con nombre no existe o no es accesible en el modo especificado. En este caso, la función devuelve un código de error del conjunto de la manera siguiente y también establece errno
en el mismo valor.
Valor de errno |
Condició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, veaerrno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
Cuando se usa con archivos, la función _access_s
determina si el archivo especificado existe y si se puede acceder a él tal y como lo especifica el valor de mode
. Cuando se usa con directorios, la función _access_s
solo determina si existe el directorio especificado. En Windows 2000 y en los sistemas operativos posteriores, todos los directorios tienen acceso de lectura y escritura.
Valor de mode |
Comprueba el archivo para |
---|---|
00 | Solo existencia. |
02 | Permiso de escritura. |
04 | Permiso de lectura. |
06 | Permisos de lectura y escritura. |
El permiso para leer o escribir el archivo no es suficiente para garantizar la capacidad de abrir un archivo. Por ejemplo, si un archivo está bloqueado por otro proceso, puede que no sea accesible aunque _access_s
devuelva 0.
_waccess_s
es una versión con caracteres anchos de _access_s
; donde el argumento path
para _waccess_s
es una cadena de caracteres anchos. De lo contrario, los objetos _waccess_s
y _access_s
se comportan de forma idéntica.
Estas funciones validan 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, estas funciones establecen errno
en EINVAL
y devuelven EINVAL
.
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
La función de la tchar.h
columna se asigna a la función de las demás columnas en función del juego de caracteres definido en tiempo de compilación.
Función tchar.h |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_taccess_s |
_access_s |
_access_s |
_waccess_s |
Requisitos
Routine | Encabezado necesario | Encabezado opcional |
---|---|---|
_access_s |
<io.h> |
<errno.h> |
_waccess_s |
<wchar.h> o <io.h> |
<errno.h> |
Ejemplo
En este ejemplo se usa _access_s
para comprobar el archivo denominado crt_access_s.c, para ver si existe y si se permite la escritura.
// 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.
Consulte también
Control de archivos
_access
, _waccess
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, , _fstat32i64
, _fstat64i32
_open
, _wopen
Funciones _stat
, _wstat