-
直接将数据流图转换为模块结构图的umask函数方法
资源介绍
4.8 umask函数
至此我们已说明了与每个文件相关联的 9个存取许可权位,在此基础上我们可以说明与每
个进程相关联的文件方式创建屏蔽字。
u m a s k函数为进程设置文件方式创建屏蔽字,并返回以前的值。 (这是少数几个没有出错返
回的函数中的一个。)
#include
#include
mode_t umask(mode_t c m a s k) ;
返回:以前的文件方式创建屏蔽字
其中,参数c m a s k由表4 - 4中的9个常数( S _ I R U S R , S _ I W U S R等)逐位“或”构成的。
在进程创建一个新文件或新目录时,就一定会使用文件方式创建屏蔽字 (回忆3 . 3和3 . 4节,
在那里我们说明了 o p e n和c r e a t函数。这两个函数都有一个参数 m o d e,它指定了新文件的存取
许可权位 )。我们将在4 . 2 0节说明如何创建一个新目录,在文件方式创建屏蔽字中为 1的位,在
文件m o d e中的相应位则一定被转成0。
实例
程序4 - 3创建了两个文件,创建第一个时,u m a s k值为0,创建第二个时,u m a s k值禁止所有
组和其他存取许可权。若运行此程序可得如下结果,从中可见存取许可权是如何设置的。
$ u m a s k 第一次打印当前文件方式创建屏蔽字
0 2
$ a . o u t
4 ls -1 foo bar
-rw------- 1 stevens 0 Nov 16 16:23 bar
-rw-rw-rw- 1 stevens 0 Nov 16 16:23 foo
$ u m a s k 观察文件方式创建屏蔽字是否更改
0 2
程序4-3 umask函数实例
6 2 U N I X环境高级编程
- 上一篇: C语言库函数---unix常用系统调用
- 下一篇: 文件长度-数据流图到模块结构图的直接转换方法