Condividi tramite


_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