_umask_s
Nastaví výchozí masku oprávnění k souboru. Verze _umask
s vylepšeními zabezpečení, jak je popsáno v funkcích zabezpečení v CRT.
Syntaxe
errno_t _umask_s(
int mode,
int* pOldMode
);
Parametry
mode
Výchozí nastavení oprávnění
pOldMode
Předchozí hodnota nastavení oprávnění.
Vrácená hodnota
Vrátí kód chyby, pokud mode
neurčí platný režim nebo pOldMode
ukazatel je NULL
.
Chybové podmínky
mode |
pOldMode |
Vrácená hodnota | Obsah pOldMode |
---|---|---|---|
jakékoliv | NULL |
EINVAL |
neupraveno |
neplatný režim | jakékoliv | EINVAL |
neupraveno |
Pokud nastane jedna z výše uvedených podmínek, vyvolá se neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je povoleno pokračovat provádění, _umask_s
vrátí EINVAL
a nastaví errno
hodnotu EINVAL
.
Poznámky
Funkce _umask_s
nastaví masku oprávnění souboru aktuálního procesu do režimu určeného uživatelem mode
. Maska oprávnění souboru upravuje nastavení oprávnění nových souborů vytvořených uživatelem _creat
, _open
nebo _sopen
. Pokud je bit v masce 1, odpovídající bit v požadované hodnotě oprávnění souboru je nastaven na hodnotu 0 (zakázáno). Pokud je v masce bit 0, odpovídající bit zůstane beze změny. Nastavení oprávnění pro nový soubor není nastavené, dokud se soubor poprvé nezavře.
Celočíselné výrazy mode
obsahují jednu nebo obě následující konstanty manifestu definované v SYS\STAT.H
:
mode |
Popis |
---|---|
_S_IWRITE |
Zápis je povolený. |
_S_IREAD |
Čtení povoleno. |
_S_IREAD | _S_IWRITE |
Čtení a psaní je povoleno. |
Když jsou obě konstanty zadané, spojí se s bitovým operátorem OR ( |
). mode
Pokud je _S_IREAD
argument , čtení není povolené (soubor je jen pro zápis). mode
Pokud je _S_IWRITE
argument , zápis není povolený (soubor je jen pro čtení). Pokud je například bit zápisu nastavený v masce, všechny nové soubory budou jen pro čtení. V MS-DOS a operačních systémech Windows jsou všechny soubory čitelné; Oprávnění jen pro zápis není možné udělit. Proto nastavení bitu _umask_s
pro čtení nemá žádný vliv na režimy souboru.
Pokud mode
není kombinací jedné z konstant manifestu nebo zahrnuje alternativní sadu konstant, funkce je ignoruje.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Pokud ho chcete změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Function | Požadovaný hlavičkový soubor |
---|---|
_umask_s |
<io.h> a a <sys/stat.h> <sys/types.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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
Viz také
Zpracování souborů
Vstupně-výstupní operace nízké úrovně
_chmod
, _wchmod
_creat
, _wcreat
_mkdir
, _wmkdir
_open
, _wopen
_umask