_umask_s
Ustawia domyślną maskę uprawnień pliku.Wersja z _umask z rozszerzeń zabezpieczeń opisane w Funkcje zabezpieczeń w CRT.
errno_t _umask_s(
int mode,
int * pOldMode
);
Parametry
[w]mode
Domyślne ustawienie uprawnienia.[out]oldMode
Wartość poprzednie ustawienie uprawnienia.
Wartość zwracana
Zwraca kod błędu, jeśli Mode nie określa prawidłowego trybu lub pOldMode wskaźnik jest NULL.
Warunki błędów
mode |
pOldMode |
Zwracanie wartości |
ZawartośćoldMode |
---|---|---|---|
wszelkie |
NULL |
EINVAL |
Nie zmodyfikowano |
Nieprawidłowy tryb |
wszelkie |
EINVAL |
Nie zmodyfikowano |
Jeśli występuje jeden z powyższych warunków, nieprawidłowy parametr wywoływana jest funkcja obsługi, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie jest dozwolone, aby kontynuować, _umask_s zwraca EINVAL i ustawia errno do EINVAL.
Uwagi
_umask_s Funkcja ustawia maskę uprawnień dla pliku bieżącego procesu w trybie określonym przez mode*.* Maska uprawnień pliku zmienia ustawienie uprawnienia nowych plików utworzonych przez _creat, _open, lub _sopen.Jeśli bit w masce jest 1, odpowiadający mu bit w pliku żądane uprawnienie jest ustawiona na 0 (niedozwolone).Jeśli bit w masce jest 0, odpowiadający mu bit pozostaje bez zmian.Ustawienie uprawnień dla nowego pliku nie jest ustawiona, dopóki plik nie zostanie zamknięty po raz pierwszy.
Wyrażenie liczby całkowitej pmode zawiera jedną lub obie z następujących stałych manifestu, określonych w SYS\STAT.H:
_S_IWRITE
Dozwolone pisania._S_IREAD
Dozwolone czytania._S_IREAD | _S_IWRITE
Czytanie i pisanie dozwolone.
Gdy podane są zarówno stałych, są połączone z (operatory OR, operator | ).Jeśli mode argument jest _S_IREAD, odczytu jest niedozwolone (plik jest tylko do zapisu).Jeśli mode argument jest _S_IWRITE, nie jest dozwolone zapisywanie (plik jest tylko do odczytu).Na przykład jeśli bit zapisu jest ustawiony w masce, nowe pliki będą tylko do odczytu.Należy zauważyć, że z systemami operacyjnymi Windows i MS-DOS, wszystkie pliki są czytelne; nie jest możliwe nadać uprawnienia tylko do zapisu.Dlatego ustawienie read bit z _umask_s nie ma wpływu na plik trybów.
Jeśli pmode nie jest w połączeniu jednego manifestu stałych lub zawiera alternatywny zestaw stałych, funkcja po prostu zignoruje te.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
_umask_s |
<io.h> i <sys/stat.h> i <sys/types.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
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 );
}
Odpowiednik w programie .NET Framework
System::IO::File::SetAttributes