_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