_umask_s
Ustawia domyślną maskę uprawnień do pliku. Wersja z ulepszeniami zabezpieczeń _umask
zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Składnia
errno_t _umask_s(
int mode,
int* pOldMode
);
Parametry
mode
Domyślne ustawienie uprawnień.
pOldMode
Poprzednia wartość ustawienia uprawnień.
Wartość zwracana
Zwraca kod błędu, jeśli mode
nie określa prawidłowego trybu lub pOldMode
wskaźnik to NULL
.
Warunki błędu
mode |
pOldMode |
Wartość zwracana | Zawartość pOldMode |
---|---|---|---|
dowolny | NULL |
EINVAL |
niezmodyfikowane |
nieprawidłowy tryb | dowolny | EINVAL |
niezmodyfikowane |
Jeśli wystąpi jeden z powyższych warunków, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, _umask_s
zwraca EINVAL
i ustawia wartość EINVAL
errno
.
Uwagi
Funkcja _umask_s
ustawia maskę uprawnień pliku bieżącego procesu na tryb określony przez mode
. Maska uprawnień do pliku modyfikuje ustawienie uprawnień nowych plików utworzonych przez _creat
, _open
lub _sopen
. Jeśli bit w masce wynosi 1, odpowiedni bit w żądanej wartości uprawnień pliku ma wartość 0 (niedozwolone). Jeśli bit w masce wynosi 0, odpowiedni bit pozostanie niezmieniony. Ustawienie uprawnień dla nowego pliku nie zostanie ustawione, dopóki plik nie zostanie zamknięty po raz pierwszy.
Wyrażenie mode
całkowite zawiera jedną lub obie następujące stałe manifestu zdefiniowane w pliku SYS\STAT.H
:
mode |
opis |
---|---|
_S_IWRITE |
Dozwolone pisanie. |
_S_IREAD |
Dozwolone jest odczytywanie. |
_S_IREAD | _S_IWRITE |
Dozwolone jest odczytywanie i zapisywanie. |
Gdy obie stałe są podane, są one połączone z operatorem bitowym OR ( |
). mode
Jeśli argument to _S_IREAD
, odczyt nie jest dozwolony (plik jest tylko do zapisu). mode
Jeśli argument to _S_IWRITE
, zapisywanie nie jest dozwolone (plik jest tylko do odczytu). Jeśli na przykład bit zapisu jest ustawiony w masce, wszystkie nowe pliki będą tylko do odczytu. W systemach operacyjnych MS-DOS i Windows wszystkie pliki są czytelne; Nie można nadać uprawnień tylko do zapisu. W związku z _umask_s
tym ustawienie bitu odczytu bez wpływu na tryby pliku.
Jeśli mode
nie jest kombinacją jednej z stałych manifestu lub zawiera alternatywny zestaw stałych, funkcja je ignoruje.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby go zmienić, zobacz Stan globalny w CRT.
Wymagania
Function | Wymagany nagłówek |
---|---|
_umask_s |
<io.h> i i <sys/stat.h> <sys/types.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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
Zobacz też
Obsługa plików
We/Wy niskiego poziomu
_chmod
, _wchmod
_creat
, _wcreat
_mkdir
, _wmkdir
_open
, _wopen
_umask