_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 NULL
bir 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 EINVAL
ayarlanırerrno
.
Açıklamalar
işlevi geçerli _umask_s
işlemin dosya izni maskesini tarafından mode
belirtilen moda ayarlar. Dosya izni maskesi, , _open
veya _sopen
tarafından _creat
oluş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.H
tanı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