_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