_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