Freigeben über


_umask_s

Legt die Standarddateiberechtigungsmaske fest. Eine Version von _umask mit werden, wie in Sicherheitsfunktionen in der CRT beschrieben.

errno_t _umask_s(
   int mode,
   int * pOldMode
);

Parameter

  • [in] mode
    Standardberechtigungseinstellung.

  • [out] oldMode
    Der vorherige Wert der Berechtigungseinstellung.

Rückgabewert

Gibt einen Fehlercode zurück, wenn Mode keinen gültigen Modus angibt, oder der pOldMode Zeiger NULL ist.

Fehlerbedingungen

mode

pOldMode

Rückgabewert

Contents of oldMode

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 Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt _umask_sEINVAL zurück und setzt errno auf EINVAL.

Hinweise

Die _umask_s - Funktion wird die Dateiberechtigungsmaske des aktuellen Prozesses auf den Modus ab, der von mode angegeben wird . Die Dateiberechtigungsmaske ändert die Berechtigungseinstellung von neuen 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 festgelegt (nicht zulässig). Wenn ein Bit in der Maske 0 ist, wird das entsprechende Bit unverändert gelassen. Die Berechtigungseinstellung für eine neue Datei wird nicht festgelegt, bis die Datei zum ersten Mal geschlossen ist.

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

  • _S_IWRITE
    Schreiben zulässig.

  • _S_IREAD
    Lesen zulässig.

  • _S_IREAD | _S_IWRITE
    Lesen und Schreiben zulässig.

Wenn beide Konstanten angegeben werden, sind sie mit dem bitweisen Operator OR verknüpft ( | ). Wenn mode das Argument _S_IREAD, wird das Lesen nicht zulässig (die Datei ist lesegeschützt). Wenn mode das Argument _S_IWRITE, wird das Schreiben nicht zulässig (die Datei ist schreibgeschützt). Wenn das schreibensbit in der Maske gesetzt wird, werden alle neuen Dateien schreibgeschützt. Beachten Sie das mit MS-DOS- und die Windows-Betriebssysteme, alle Dateien sind lesbar; es ist nicht möglich, lesegeschützte Berechtigung zu geben. Deshalb hat das Festlegen des Lesebits mit _umask_s keine Auswirkungen auf die Modi der Datei.

Wenn pmode keine Kombination einer Manifestkonstanten ist oder einen alternative Konstanten enthält, ignoriert die Funktion einfach die.

Anforderungen

Routine

Erforderlicher Header

_umask_s

<io.h und> sys </stat.h und sys> /types.h <>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

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 );
}
  

.NET Framework-Entsprechung

System::IO::File::SetAttributes

Siehe auch

Referenz

Dateibehandlung

E/A auf niedriger Ebene

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask