_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

El control de archivo

_access, _waccess

_creat, _wcreat

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat, funciones de _wstat