Freigeben über


_umask_s

Legt die Standard-Dateiberechtigungsmaske fest. Eine Version mit _umask Sicherheitsverbesserungen, wie in den Sicherheitsfeatures in der CRT beschrieben.

Syntax

errno_t _umask_s(
   int mode,
   int* pOldMode
);

Parameter

mode
Standard-Berechtigungseinstellung.

pOldMode
Der vorherige Wert der Berechtigungseinstellung.

Rückgabewert

Gibt einen Fehlercode zurück, wenn mode kein gültiger Modus oder der pOldMode Zeiger angegeben ist NULL.

Fehlerbedingungen

mode pOldMode Rückgabewert Inhalt von pOldMode
any NULL EINVAL nicht geändert
ungültiger Modus any EINVAL nicht geändert

Wenn eine der oben genannten Bedingungen auftritt, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt _umask_sEINVAL zurück und setzt errno auf EINVAL.

Hinweise

Die _umask_s Funktion legt das Dateiberechtigungsformat des aktuellen Prozesses auf den durch mode. Die Dateiberechtigungsmaske ändert die Berechtigungseinstellung neuer Dateien, die von _creat, _open oder _sopen erstellt werden. Wenn ein Bit in der Maske 1 ist, wird das entsprechende Bit im angeforderten Berechtigungswert der Datei auf 0 (nicht zulässig) festgelegt. Wenn ein Bit in der Maske 0 ist, bleibt das entsprechende Bit unverändert. Die Berechtigungseinstellung für eine neue Datei wird erst festgelegt, wenn die Datei zum ersten Mal geschlossen wird.

Der ganzzahlige Ausdruck mode enthält eine oder beide der folgenden Manifestkonstanten, die in SYS\STAT.H:

mode Beschreibung
_S_IWRITE Schreiben erlaubt.
_S_IREAD Lesen erlaubt.
_S_IREAD | _S_IWRITE Lesen und Schreiben erlaubt.

Wenn beide Konstanten angegeben werden, werden sie mit dem bitweisen OR-Operator ( | ) verknüpft. Wenn das mode Argument lautet _S_IREAD, ist das Lesen nicht zulässig (die Datei ist schreibgeschützt). Wenn das mode Argument lautet _S_IWRITE, ist das Schreiben nicht zulässig (die Datei ist schreibgeschützt). Wenn z.B. das Schreib-Bit in der Maske festgelegt ist, sind alle neuen Dateien schreibgeschützt. In MS-DOS und den Windows-Betriebssystemen sind alle Dateien lesbar; Es ist nicht möglich, schreibgeschützte Berechtigungen zu erteilen. Deshalb hat es keine Auswirkung auf den Dateimodus, wenn das Lese-Bit mit _umask_s belegt wird.

Wenn mode es sich nicht um eine Kombination aus einer der Manifestkonstanten handelt oder einen alternativen Satz von Konstanten enthält, ignoriert die Funktion sie.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern finden Sie im Global state in the CRT.

Anforderungen

Funktion Erforderlicher Header
_umask_s <io.h>, <sys/stat.h> und <sys/types.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// 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

Siehe auch

Dateibehandlung
E/A auf niedriger Ebene
_chmod, _wchmod
_creat, _wcreat
_mkdir, _wmkdir
_open, _wopen
_umask