_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 );
}