_umask
Define a máscara de permissão de arquivo padrão. Para obter uma versão mais segura dessa função, consulte _umask_s
.
Sintaxe
int _umask( int pmode );
Parâmetros
pmode
Configuração de permissão padrão.
Valor retornado
_umask
retorna o valor anterior de pmode
. Não há retorno de erro.
Comentários
A _umask
função define a máscara de permissão de arquivo do processo atual para o modo especificado por pmode
. A máscara de permissão de arquivo modifica a configuração de permissão de novos arquivos criados por _creat
, _open
ou _sopen
. Se um bit na máscara for 1, o bit correspondente no valor da permissão solicitada do arquivo será definido como 0 (não permitido). Se um bit na máscara for 0, o bit correspondente será deixado inalterado. A configuração de permissão para um novo arquivo não é definida até que o arquivo é seja fechado pela primeira vez.
A expressão de inteiro pmode
contém uma ou ambas as seguintes constantes de manifesto, definidas em SYS\STAT.H
:
pmode |
Descrição |
---|---|
_S_IWRITE |
Gravação permitida. |
_S_IREAD |
Leitura permitida. |
_S_IREAD | _S_IWRITE |
Leitura e gravação permitidas. |
Quando as duas constantes são informadas, elas são ingressadas com o operador OR bit-a-bit (|
). Se o argumento pmode
for _S_IREAD
, a leitura não será permitida (o arquivo será somente gravação). Se o argumento pmode
for _S_IWRITE
, a gravação não será permitida (o arquivo será somente leitura). Por exemplo, se o bit de gravação estiver definido na máscara, quaisquer novos arquivos serão somente leitura. Nos sistemas operacionais MS-DOS e Windows, todos os arquivos são legíveis e não é possível conceder permissão somente gravação. Portanto, a configuração do bit de leitura _umask
não tem efeito nos modos do arquivo.
Se pmode
não for uma combinação de uma das constantes do manifesto nem incorporar um conjunto alternativo de constantes, a função as ignorará.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar isso, confira Estado global no CRT.
Requisitos
Função | Cabeçalho necessário |
---|---|
_umask |
<io.h> , <sys/stat.h> , <sys/types.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Bibliotecas
Todas as versões das bibliotecas em tempo de execução C.
Exemplo
// 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
Confira também
Manipulação de arquivos
E/S de baixo nível
_chmod
, _wchmod
_creat
, _wcreat
_mkdir
, _wmkdir
_open
, _wopen