Share via


_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 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 filename para _wchmod es una cadena de caracteres anchos. Por lo demás, _wchmod y _chmod se comportan de forma idéntica.

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 de parámetros no válidos, 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 rutina de texto genérico

Rutina Tchar.h

_UNICODE y _MBCS no definidos

_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. 

FakePre-11f64b6c366246b28307c4ff8d4a67f6-34366cd4bc9e4032b241b396875262fc

Equivalente en .NET Framework

Vea también

Referencia

Control de archivos

_access, _waccess

_creat, _wcreat

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat, _wstat (Funciones)