_umask

设置默认文件授权掩码。 此功能的一种较为安全的版本可用; _umask_s参见。

int _umask(
   int pmode 
);

参数

  • pmode
    默认权限集。

返回值

_umask 返回 pmode以前的值。 无错误返回。

备注

_umask 功能将当前的文件授权掩码定向到 pmode所指定的模式*。*文件权限掩码修改 _creat、 _open或 _sopen创建的新文件权限集。 如果在掩码中的位为 1,对应的位按文件的请求的权限值设置为 0 (禁止)。 如果在掩码中的位为 0,对应的位保持不变。 新文件的权限集之前,不会设置文件第一次关闭。

整数表达式 pmode 在 SYS \STAT.H 包含以下清单常数之一或两者,定义:

  • _S_IWRITE
    允许的文本。

  • _S_IREAD
    允许读取。

  • _S_IREAD | _S_IWRITE
    允许读取和写入。

当给定时对两个常数,这些连接与按位 " 或 " 运算符 ( | ). 如果 pmode 参数是 _S_IREAD,读取不允许文件 (只读)。 如果 pmode 参数是 _S_IWRITE,编写不允许文件 (只读)。 例如,因此,如果编写位在掩码设置,所有新文件是只读的。 请注意与 MS-DOS 和 windows 操作系统中,所有文件可读的;为只读权限是不可能的。 因此,设置与 _umask 读取位对文件的架构的效果。

如果 pmode 不是组合的某个清单常数也不会合并替代常数集,函数将忽略这些。

要求

实例

必需的头

_umask

io.h, sys/stat.h, sys/types.h

有关其他的兼容性信息,请参见中介绍的 兼容性

C 运行库的所有版本。

示例

// crt_umask.c
// compile with: /W3
// This program uses _umask 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;

   /* Create read-only files: */
   oldmask = _umask( _S_IWRITE ); // C4996
   // Note: _umask is deprecated; consider using _umask_s instead
   printf( "Oldmask = 0x%.4x\n", oldmask );
}
  

.NET Framework 等效项

系统:: IO:: 文件:: SetAttributes

请参见

参考

文件处理

底层I/O

_chmod, _wchmod

_creat, _wcreat

_mkdir, _wmkdir

_open, _wopen