_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