Udostępnij przez


_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ść EINVALerrno .

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, _openlub _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