_chmod, _wchmod
Cambia los valores de los permisos de archivo.
int _chmod(
const char *filename,
int pmode
);
int _wchmod(
const wchar_t *filename,
int pmode
);
Parámetros
filename
Nombre del archivo existente.pmode
configuración de permisos para el archivo.
Valor devuelto
Estas funciones devuelven 0 si la configuración de permisos se cambia correctamente.un valor devuelto de – 1 indica el error.Si el archivo especificado no se encuentra, errno se establece en ENOENT; si un parámetro no es válido, errno se establece en EINVAL.
Comentarios
Los cambios de función de _chmod la configuración de permisos del archivo especificado por filename*.* La configuración de permisos controla el acceso de lectura y escritura al archivo.La expresión de entero pmode contiene una o ambas de las constantes de manifiesto siguientes, definidos en SYS \Stat .h.
_S_IWRITE
Escribir permitida._S_IREAD
lectura permitida._S_IREAD | _S_IWRITE
lectura y escritura permitidas.
Cuando se dan ambas constantes, se combinan con el operador bit a bit de OR ( |).Si el permiso de escritura no se especifica, el archivo es de sólo lectura.Observe que todos los archivos siempre son legibles; no es posible asignar el permiso de solo escritura.así, los modos _S_IWRITE y _S_IREAD | _S_IWRITE son equivalentes.
_wchmod es una versión con caracteres anchos de _chmod; el argumento de filename a _wchmod es una cadena de caracteres._wchmod y _chmod se comportan exactamente igual de otra manera.
esta función valida sus parámetros.Si pmode no es una combinación de una de las constantes de manifiesto ni escribir un conjunto alternas de constantes, la función omite simplemente los.Si filename es NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, errno se establece en EINVAL y la función devuelve -1.
Asignaciones de la rutina de texto genérico
rutina de Tchar.h |
_UNICODE y _MBCS no definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Requisitos
rutina |
Encabezado necesario |
encabezado opcional |
---|---|---|
_chmod |
<io.h> |
<sistema/types.h> , <sistema/stat.h> , <errno.h> |
_wchmod |
<io.h> o <wchar.h> |
<sistema/types.h> , <sistema/stat.h> , <errno.h> |
Para obtener más información de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
// crt_chmod.c
// This program uses _chmod to
// change the mode of a file to read-only.
// It then attempts to modify the file.
//
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
// Change the mode and report error or success
void set_mode_and_report(char * filename, int mask)
{
// Check for failure
if( _chmod( filename, mask ) == -1 )
{
// Determine cause of failure and report.
switch (errno)
{
case EINVAL:
fprintf( stderr, "Invalid parameter to chmod.\n");
break;
case ENOENT:
fprintf( stderr, "File %s not found\n", filename );
break;
default:
// Should never be reached
fprintf( stderr, "Unexpected error in chmod.\n" );
}
}
else
{
if (mask == _S_IREAD)
printf( "Mode set to read-only\n" );
else if (mask & _S_IWRITE)
printf( "Mode set to read/write\n" );
}
fflush(stderr);
}
int main( void )
{
// Create or append to a file.
system( "echo /* End of file */ >> crt_chmod.c_input" );
// Set file mode to read-only:
set_mode_and_report("crt_chmod.c_input ", _S_IREAD );
system( "echo /* End of file */ >> crt_chmod.c_input " );
// Change back to read/write:
set_mode_and_report("crt_chmod.c_input ", _S_IWRITE );
system( "echo /* End of file */ >> crt_chmod.c_input " );
}
una línea de texto.
una línea de texto. Modo establecido en readonly Acceso denegado. Modo establecido en la escritura
Equivalente en .NET Framework
Vea también
Referencia
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32