共用方式為


_umask_s

設定預設檔案使用權限遮。 這些是 _umask 的安全性增強版本,如 CRT 中的安全性功能中所述。

errno_t _umask_s(
   int mode,
   int * pOldMode
);

參數

  • [in] mode
    預設使用權限集合。

  • [out] oldMode
    使用權限設定先前的值。

傳回值

傳回錯誤碼,如果 Mode 沒有指定有效的方式或 pOldMode 指標是 NULL。

錯誤狀況

mode

pOldMode

傳回值

oldMode的內容

any

NULL

EINVAL

未修改

無效的模式

any

EINVAL

未修改

如果以上任何一個錯誤情況發生,無效的參數叫用處理常式,如 參數驗證中所述。 如果允許繼續執行, _umask_s 會傳回 EINVAL 並設定 errno 為 EINVAL。

備註

目前處理序檔案使用權限遮罩套用至這個模式的由 mode指定的 _umask_s 函式集*。*檔案使用權限遮罩修改 _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