共用方式為


_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

請參閱

參考

檔案處理

低階 I/O

_chmod _wchmod

_creat _wcreat

_mkdir _wmkdir

_open _wopen

_umask