_umask_s

establece la máscara predeterminada de los permisos de archivo.Una versión de _umask con mejoras de seguridad como se describe en Características de seguridad en CRT.

errno_t _umask_s(
   int mode,
   int * pOldMode
);

Parámetros

  • [in] mode
    Valor de permisos predeterminado.

  • [out] oldMode
    el valor anterior de la configuración de permisos.

Valor devuelto

Devuelve un código de error si Mode no especifica un modo válido o el puntero de pOldMode es NULL.

condiciones de error

mode

pOldMode

Valor devuelto

Contenido de oldMode

cualquier

NULL

EINVAL

no modificado

modo no válido

cualquier

EINVAL

no modificado

Si una de las condiciones anteriores se produce, 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, _umask_s devuelve EINVAL y establece errno a EINVAL.

Comentarios

La función de _umask_sestablece la máscara de archivo del proceso actual el modo especificado por mode*.* La máscara de archivo modifica la configuración de permisos nuevos archivos creados por _creat, _open, o _sopen.Si un bit de la máscara es 1, el bit correspondiente en el valor solicitado de permiso del archivo se establece en 0 (denegado).Si un bit de la máscara es 0, el bit correspondiente permanece sin cambios.La configuración de permisos para un nuevo archivo no se establece hasta que se cierra el archivo por primera vez.

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 bit a bit el operador ( | ).Si el argumento de mode es _S_IREAD, la lectura no se permite (el archivo es de sólo escritura).Si el argumento de mode es _S_IWRITE, escribir no se permite (el archivo es de sólo lectura).Por ejemplo, si el bit de escritura se establece en la máscara, cualquier nuevo archivo será de sólo lectura.Observe que con MS-DOS y los sistemas operativos Windows, todos los archivos son legibles; no es posible asignar el permiso de solo escritura.Por consiguiente, establecer el bit de lectura con _umask_sno tiene ningún efecto en los modos de archivo.

Si pmode no es una combinación de una de las constantes de manifiesto ni escribir un conjunto alternas de constantes, la función omitirá los.

Requisitos

rutina

Encabezado necesario

_umask_s

<io.h> y <sistema/stat.h> y <sistema/types.h>

Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.

Ejemplo

// crt_umask_s.c
/* This program uses _umask_s to set
 * the file-permission mask so that all future
 * files will be created as read-only files.
 * It also displays the old mask.
 */

#include <sys/stat.h>
#include <sys/types.h>
#include <io.h>
#include <stdio.h>

int main( void )
{
   int oldmask, err;

   /* Create read-only files: */
   err = _umask_s( _S_IWRITE, &oldmask );
   if (err)
   {
      printf("Error setting the umask.\n");
      exit(1);
   }
   printf( "Oldmask = 0x%.4x\n", oldmask );
}
  

Equivalente en .NET Framework

System:: IO:: archivo:: SetAttributes

Vea también

Referencia

El control de archivo

E/S de bajo nivel

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask