Compartilhar via


_umask_s

Define a máscara de arquivo padrão permissão. Uma versão de _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

  • [entrada] mode
    Usar como padrão a configuração de permissão.

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

Valor de retorno

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

Condições de erro

mode

pOldMode

Valor de Retorno

Contents of oldMode

any

NULL

EINVAL

não modificado

modo inválido

any

EINVAL

não modificado

Se uma das condições anteriores ocorre, o manipulador inválido do parâmetro será chamado, conforme descrito em Validação do parâmetro. Se a execução puder continuar,_umask_s retornará EINVAL e definirá errno como EINVAL.

Comentários

A função de _umask_s define a máscara de arquivo permissão do processo atual para o modo especificado por mode*.* A máscara de arquivo permissão altera a configuração de permissão dos novos arquivos criados por _creat, por _open, ou por _sopen. Se um bit na máscara é 1, o bit correspondente no valor solicitado de permissões do arquivo é definido como 0 (não permitido). Se um bit na máscara é 0, o bit correspondente está inalterado. A configuração de permissão para um novo arquivo não estiver definida até que o arquivo seja fechado pela primeira vez.

A expressão de inteiro pmode contém uma ou ambas as seguintes constantes manifestas, definido no sistema \ STAT.H:

  • _S_IWRITE
    Gravando permitida.

  • _S_IREAD
    Leitura permitidas.

  • _S_IREAD | _S_IWRITE
    Leitura e gravação permitidas.

Quando ambas as constantes são fornecidas, são adicionadas com bit a bit OR (o operador | ). Se o argumento de mode é _S_IREAD, leia não é permitido (o arquivo é somente gravação.) Se o argumento de mode é _S_IWRITE, escrever não é permitida (o arquivo é somente leitura). Por exemplo, se o bit de gravação é definido na máscara, todos os novos arquivos serão somente leitura. Observe que o MS-DOS e com os sistemas operacionais Windows, todos os arquivos são legíveis; não é possível atribuir a permissão somente gravação. Consequentemente, definir o bit de leitura com _umask_s não tem nenhum efeito nos modos de arquivo.

Se pmode não é uma combinação de uma das constantes manifestas nem inserir um conjunto de substituição de constantes, a função ignorará somente as.

Requisitos

Rotina

Cabeçalho necessário

_umask_s

<io.h e> o sistema <stat.h/e/types.h o sistema> <>

Para 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

E/S de nível inferior

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask