_umask
Establece la máscara de permisos de archivo predeterminados. Para obtener una versión más segura de esta función, consulte _umask_s
.
Sintaxis
int _umask( int pmode );
Parámetros
pmode
Configuración de permisos predeterminada.
Valor devuelto
_umask
devuelve el valor anterior de pmode
. No se devuelve ningún error.
Comentarios
La _umask
función establece la máscara de permiso de archivo del proceso actual en el modo especificado por pmode
. La máscara de permisos de archivo modifica la configuración de permisos de los nuevos archivos creados por _creat
, _open
o _sopen
. Si un bit de la máscara es 1, el bit correspondiente del valor de permiso solicitado del archivo se establece en 0 (no permitido). Si un bit de la máscara es 0, el bit correspondiente se deja sin modificar. La configuración de permisos para un archivo nuevo no se establece hasta que se cierra el archivo por primera vez.
La expresión de entero pmode
contiene una o las dos constantes del manifiesto siguientes, que se definen en SYS\STAT.H
:
pmode |
Descripción |
---|---|
_S_IWRITE |
Escritura permitida. |
_S_IREAD |
Lectura permitida. |
_S_IREAD | _S_IWRITE |
Lectura y escritura permitidas. |
Cuando se proporcionan ambas constantes, se combinan con el operador OR bit a bit (|
). Si el argumento pmode
es _S_IREAD
, no se permite la lectura (el archivo es de solo escritura). Si el argumento pmode
es _S_IWRITE
, no se permite la escritura (el archivo es de solo lectura). Por ejemplo, si el bit de escritura está establecido en la máscara, los nuevos archivos serán de solo lectura. En los sistemas operativos MS-DOS y Windows todos los archivos se pueden leer; no se puede conceder permiso de solo escritura. Por tanto, el establecimiento del bit de lectura con _umask
no tiene ningún efecto sobre los modos del archivo.
Si pmode
no es una combinación de una de las constantes del manifiesto o incorpora un conjunto alternativo de constantes, la función simplemente las omitirá.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiarlo, consulte Estado global en CRT.
Requisitos
Función | Encabezado necesario |
---|---|
_umask |
<io.h> , , <sys/stat.h> , <sys/types.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Bibliotecas
Todas las versiones de las bibliotecas en tiempo de ejecución de C.
Ejemplo
// crt_umask.c
// compile with: /W3
// This program uses _umask 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;
/* Create read-only files: */
oldmask = _umask( _S_IWRITE ); // C4996
// Note: _umask is deprecated; consider using _umask_s instead
printf( "Oldmask = 0x%.4x\n", oldmask );
}
Oldmask = 0x0000
Consulte también
Control de archivos
E/S de bajo nivel
_chmod
, _wchmod
_creat
, _wcreat
_mkdir
, _wmkdir
_open
, _wopen