Sdílet prostřednictvím


_umask_s

Nastaví výchozí oprávnění souboru masku.Verze _umask s vylepšení zabezpečení popsaným v Funkce zabezpečení v CRT.

errno_t _umask_s(
   int mode,
   int * pOldMode
);

Parametry

  • [v]mode
    Výchozí nastavení oprávnění.

  • [výstup]oldMode
    Předchozí hodnota nastavení oprávnění.

Vrácená hodnota

Vrátí kód chyby, pokud Mode neurčuje platný režim nebo pOldMode je ukazatel NULL.

Chybové podmínky

mode

pOldMode

Vrácená hodnota

ObsaholdMode

žádné

NULL

EINVAL

Nezměněno

Neplatný režim

žádné

EINVAL

Nezměněno

Pokud dojde k jedné z výše uvedených podmínek, je vyvolána neplatný parametr popisovače, jak je popsáno v Ověření parametru.Pokud je povoleno spuštění pokračovat, _umask_s vrátí EINVAL a errno na EINVAL.

Poznámky

_umask_s Funkce nastaví režim určený Maska oprávnění souboru aktuální proces mode*.* Maska oprávnění soubor upravuje nastavení oprávnění v nové soubory vytvořené v _creat, _open, nebo _sopen.Pokud je v masce bit 1, příslušné bity hodnotu požadované oprávnění souboru nastavena na 0 (zakázáno).Pokud je v masce bit 0, odpovídající bit je ponechán beze změny.Nastavení oprávnění pro nový soubor není nastavena, dokud nezavřete první soubor.

Výraz celé pmode obsahuje jeden nebo oba následující manifestu konstanty definované v SYS\STAT.H:

  • _S_IWRITE
    Zápis povolen.

  • _S_IREAD
    Čtení povoleny.

  • _S_IREAD | _S_IWRITE
    Čtení a zápis povolen.

Při obou konstanty jsou uvedeny, jsou spojeny pomocí operátoru bitový operátor OR ( | ).Pokud mode argument je _S_IREAD, není povoleno čtení (soubor je jen pro zápis).Pokud mode argument je _S_IWRITE, není povolen zápis (soubor je jen pro čtení).Například pokud je nastaven bit zápis v masce, nové soubory budou být jen pro čtení.Systém MS-DOS a operační systémy Windows, všechny soubory jsou čitelné; není možné udělit oprávnění pouze pro zápis.Proto nastavení čtení bit s _umask_s nemá žádný vliv na režimy v souboru.

Pokud pmode je kombinací jedné z manifestu konstant nebo zahrnuje alternativní sadu konstant, funkcí bude jednoduše ignorovat ty.

Požadavky

Rutina

Požadované záhlaví

_umask_s

<io.h> a <sys/stat.h> a <sys/types.h>

Další informace o kompatibilitě, viz Compatibility v úvodu.

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 );
}
  

Ekvivalent v rozhraní .NET Framework

System::IO::file::SetAttributes

Viz také

Referenční dokumentace

Zpracování souborů

I/O nízké úrovně

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen

_umask