_umask_s
設定的預設權限的檔案遮罩。 版本的 _umask 中所述的安全性增強功能與安全性功能,則在 CRT 中。
errno_t _umask_s(
int mode,
int * pOldMode
);
參數
[in] mode
預設的使用權限設定。[out] oldMode
先前的權限設定值。
傳回值
如果傳回錯誤碼Mode並未指定有效的模式或pOldMode指標位於NULL。
錯誤狀況
mode |
pOldMode |
傳回值 |
內容oldMode |
---|---|---|---|
任何 |
NULL |
EINVAL |
不能修改 |
無效的模式 |
任何 |
EINVAL |
不能修改 |
如果上述條件,會發生不正確的參數處理常式會叫用,如所述參數驗證。 如果要繼續,請允許執行_umask_s會傳回EINVAL ,並設定errno到EINVAL。
備註
_umask_s 函式會以指定的模式來設定目前的處理序的權限的檔案遮罩mode*.* 檔案使用權限遮罩修改所建立的新檔案的權限設定_creat, _open,或_sopen。 如果遮罩位元為 1,則會將對應的位元中的檔案要求的權限的值設定為 0 (不允許的)。 對應的位元如果遮罩位元為 0 時,會保持不變。 未設定為新的檔案的權限設定,直到第一次關閉檔案。
整數運算式pmode包含一或多個下列資訊清單定義的常數,在 SYS\STAT 中。H:
_S_IWRITE
允許使用的筆跡。_S_IREAD
讀取允許。_S_IREAD | _S_IWRITE
允許讀取與寫入。
當有兩個常數時,它們加入以位元 OR 運算子 ( | ). 如果mode引數是_S_IREAD,不允許讀取 (該檔案是唯寫)。 如果mode引數是_S_IWRITE,不允許寫入 (該檔案是唯讀屬性)。 比方說,如果寫入的位元遮罩中設定,任何新的檔案將會是唯讀屬性。 請注意使用 MS-DOS 與 Windows 作業系統中,所有檔案都都可讀取 ; 您不能授與唯寫屬性的權限。 因此,設定 [位元與讀取_umask_s 不會影響檔案的模式。
如果pmode不是其中一個資訊清單常數的組合,或包含其他的組的常數,此函式就只是忽略這種情況。
需求
常式 |
所需的標頭 |
---|---|
_umask_s |
<io.h> 和 <sys/stat.h> 和 <sys/types.h> |
其他的相容性資訊,請參閱相容性在簡介中。
範例
// 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 );
}
.NET Framework 對等用法
System::IO::File::SetAttributes