【引用】open|creat & umask函数
umask(设置建立新文件时的权限遮罩) | |
| creat,open |
| #include<sys/types.h> |
| mode_t umask(mode_t mask); |
| umask()会将系统umask值设成参数mask&0777后的值,然后将先前的umask值返回。在使用open()建立新文件时,该参数 mode并非真正建立文件的权限,而是(mode&~umask)的权限值。例如,在建立文件时指定文件权限为0666,通常umask值默认为 022,则该文件的真正权限则为0666&~022=0644,也就是rw-r--r--返回值此调用不会有错误值返回。返回值为原先系统的 umask值。 |
|
|
| read,write,fcntl,close,link,stat,umask,unlink,fopen |
| #include<sys/types.h> |
| int creat(const char * pathname, mode_tmode); |
| 参数pathname指向欲建立的文件路径字符串。Creat()相当于使用下列的调用方式调用open() |
| 关于参数mode请参考open()函数。 |
| creat()会返回新的文件描述词,若有错误发生则会返回-1,并把错误代码设给errno。 |
| creat()无法建立特别的装置文件,如果需要请使用mknod()。 |
| 请参考open()。 |
|
|
| read,write,fcntl,close,link,stat,umask,unlink,fopen |
| #include<sys/types.h> |
| int open( const char * pathname, int flags); |
| 参数pathname 指向欲打开的文件路径字符串。下列是参数flags 所能使用的旗标: |
| 若所有欲核查的权限都通过了检查则返回0 值,表示成功,只要有一个权限被禁止则返回-1。 |
| EEXIST 参数pathname 所指的文件已存在,却使用了O_CREAT和O_EXCL旗标。 |
| 使用access()作用户认证方面的判断要特别小心,例如在access()后再作open()空文件可能会造成系统安全上的问题。 |
| #include<unistd.h> |
| Linux Programmer! |