Compartilhar via


_umask_s

Define a máscara de permissão de arquivo padrão.Uma versão do _umask com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.

errno_t _umask_s(
   int mode,
   int * pOldMode
);

Parâmetros

  • [in]mode
    Configuração de permissão padrão.

  • [out]oldMode
    O valor anterior da configuração de permissão.

Valor de retorno

Retorna um código de erro se Mode não especifica um modo válido ou o pOldMode ponteiro é NULL.

Condições de erro

mode

pOldMode

Valor de retorno

Conteúdo deoldMode

any

NULL

EINVAL

não modificado

modo inválido

any

EINVAL

não modificado

Se ocorrer uma das condições acima, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, _umask_s retorna EINVAL e define errno para EINVAL.

Comentários

O _umask_s função define a máscara de permissão de arquivo do processo atual para o modo especificado por mode*.* 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 de permissão solicitada do arquivo é definido como 0 (desativado).Se um bit na máscara for 0, o bit correspondente é deixado inalterado.A configuração de permissão para um novo arquivo não está definida até que o arquivo é fechado pela primeira vez.

A expressão de inteiro pmode contém uma ou ambas das seguintes constantes manifesto, definidas em SYS\STAT.H:

  • _S_IWRITE
    Permissão de escrita.

  • _S_IREAD
    Permissão de leitura.

  • _S_IREAD | _S_IWRITE
    Permissão de leitura e gravação.

Quando as duas constantes forem fornecidas, elas se unem com o (operador bit a bit ou | ).Se a mode argumento é _S_IREAD, não é permitida a leitura (o arquivo é somente gravação).Se a mode argumento é _S_IWRITE, escrita não é permitida (o arquivo é somente leitura).Por exemplo, se o bit de gravação está definido na máscara, todos os novos arquivos será somente leitura.Observe que, com o MS-DOS e os sistemas operacionais Windows, todos os arquivos são legíveis; não é possível conceder a permissão somente para gravação.Portanto, definindo a leitura de bits com _umask_s não tem efeito sobre os modos do arquivo.

Se pmode não é uma combinação de uma das constantes manifesto ou incorpora um conjunto alternativo de constantes, a função irá simplesmente ignorar aqueles.

Requisitos

Rotina

Cabeçalho necessário

_umask_s

<io.h> e <sys/stat.h> e <sys/types.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

Exemplo

// 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 );
}
  

Equivalência do .NET Framework

System::IO::File::SetAttributes

Consulte também

Referência

Manipulação de arquivos

Nível baixo e/S

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

Open, _wopen

_umask