Aracılığıyla paylaş


_umask_s

Varsayılan dosya izni maskesini ayarlar. CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri içeren sürümü_umask.

Sözdizimi

errno_t _umask_s(
   int mode,
   int* pOldMode
);

Parametreler

mode
Varsayılan izin ayarı.

pOldMode
İzin ayarının önceki değeri.

Dönüş değeri

Geçerli bir mod belirtmiyorsa veya pOldMode işaretçi ise NULLbir hata kodu mode döndürür.

Hata koşulları

mode pOldMode Dönüş değeri İçeriği pOldMode
herhangi bir NULL EINVAL değiştirilmedi
geçersiz mod herhangi bir EINVAL değiştirilmedi

Yukarıdaki koşullardan biri oluşursa, Parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, _umask_s döndürür EINVAL ve olarak EINVALayarlanırerrno.

Açıklamalar

işlevi geçerli _umask_s işlemin dosya izni maskesini tarafından modebelirtilen moda ayarlar. Dosya izni maskesi, , _openveya _sopentarafından _creatoluşturulan yeni dosyaların izin ayarını değiştirir. Maskedeki bir bit 1 ise, dosyanın istenen izin değerindeki ilgili bit 0 olarak ayarlanır (izin verilmez). Maskedeki bir bit 0 ise, karşılık gelen bit değişmeden bırakılır. Yeni bir dosyanın izin ayarı, dosya ilk kez kapatılana kadar ayarlanmaz.

Tamsayı ifadesi mode , içinde SYS\STAT.Htanımlanan aşağıdaki bildirim sabitlerinden birini veya her ikisini içerir:

mode Açıklama
_S_IWRITE Yazma izni verilir.
_S_IREAD Okuma izni verilir.
_S_IREAD | _S_IWRITE Okuma ve yazma izin verilir.

Her iki sabit de verildiğinde bit düzeyinde OR işleciyle ( | ) birleştirilir. mode Bağımsız değişken ise_S_IREAD, okumaya izin verilmez (dosya salt okunurdur). mode Bağımsız değişken ise_S_IWRITE, yazmaya izin verilmez (dosya salt okunurdur). Örneğin, yazma biti maskede ayarlanırsa, tüm yeni dosyalar salt okunur olur. MS-DOS ve Windows işletim sistemlerinde tüm dosyalar okunabilir; yalnızca yazma izni vermek mümkün değildir. Bu nedenle, okuma bitini ile _umask_s ayarlamak dosyanın modlarını hiçbir şekilde etkilemez.

Bildirim sabitlerinden birinin birleşimi değilse veya alternatif bir sabit kümesine sahipse mode işlev bunları yoksayar.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bunu değiştirmek için bkz . CRT'de Genel durum.

Gereksinimler

İşlev Gerekli başlık
_umask_s <io.h>ve ve <sys/stat.h><sys/types.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Örnek

// 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

Ayrıca bkz.

Dosya işleme
Alt düzey G/Ç
_chmod, _wchmod
_creat, _wcreat
_mkdir, _wmkdir
_open, _wopen
_umask