_umask_s
Imposta la maschera di autorizzazione file predefinita. Versione di con miglioramenti della _umask
sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Sintassi
errno_t _umask_s(
int mode,
int* pOldMode
);
Parametri
mode
Impostazione di autorizzazione predefinita.
pOldMode
Valore precedente dell'impostazione di autorizzazione.
Valore restituito
Restituisce un codice di errore se mode
non specifica una modalità valida o il pOldMode
puntatore è NULL
.
Condizioni di errore
mode |
pOldMode |
Valore restituito | Contenuto di pOldMode |
---|---|---|---|
qualsiasi | NULL |
EINVAL |
non modificato |
modalità non valida | qualsiasi | EINVAL |
non modificato |
Se si verifica una delle condizioni precedenti, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, _umask_s
restituisce EINVAL
e imposta errno
su EINVAL
.
Osservazioni:
La _umask_s
funzione imposta la maschera di autorizzazione file del processo corrente sulla modalità specificata da mode
. La maschera di autorizzazione file modifica l'impostazione di autorizzazione dei nuovi file creati da _creat
, _open
o _sopen
. Se un bit nella maschera è impostato su 1, il bit corrispondente nel valore di autorizzazione richiesto del file è impostato su 0 (non consentito). Se un bit nella maschera è 0, il bit corrispondente viene lasciato invariato. L'impostazione di autorizzazione per un nuovo file non viene impostata finché il file non viene chiuso per la prima volta.
L'espressione mode
integer contiene una o entrambe le costanti manifesto seguenti, definite in SYS\STAT.H
:
mode |
Descrizione |
---|---|
_S_IWRITE |
Scrittura consentita. |
_S_IREAD |
Lettura consentita. |
_S_IREAD | _S_IWRITE |
Lettura e scrittura consentite. |
Quando vengono fornite entrambe le costanti, vengono unite con l'operatore OR bit per bit ( |
). Se l'argomento è _S_IREAD
, la mode
lettura non è consentita (il file è di sola scrittura). Se l'argomento mode
è _S_IWRITE
, la scrittura non è consentita (il file è di sola lettura). Ad esempio, se il bit di scrittura è impostato nella maschera, tutti i nuovi file saranno di sola lettura. In MS-DOS e nei sistemi operativi Windows tutti i file sono leggibili; non è possibile concedere l'autorizzazione di sola scrittura. Pertanto, l'impostazione del bit di lettura con _umask_s
non ha alcun effetto sulle modalità del file.
Se mode
non è una combinazione di una delle costanti manifesto o incorpora un set alternativo di costanti, la funzione li ignora.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificarlo, vedere Stato globale in CRT.
Requisiti
Funzione | Intestazione obbligatoria |
---|---|
_umask_s |
<io.h> e <sys/stat.h> e <sys/types.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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 );
}
Oldmask = 0x0000
Vedi anche
Gestione dei file
I/O di basso livello
_chmod
, _wchmod
_creat
, _wcreat
_mkdir
, _wmkdir
_open
, _wopen
_umask