文档库

最新最全的文档下载
当前位置:文档库 > 3Linux服务器开发之:chmod()函数,chmod命令,以及文件屏蔽umask命令,程序修改umask,详细介绍+案例演示

3Linux服务器开发之:chmod()函数,chmod命令,以及文件屏蔽umask命令,程序修改umask,详细介绍+案例演示

1.依赖的头文件

#include

2.函数定义:

//通过传入path中给定的文件名的方式来改变文件制定的权限

int chmod(const char *path,mode_t mode);

//通过传入文件描述符的方式为一个文件重设权限

intfchmod(intfd,mode_t mode);

注意:如果使用Linux的chmod命令时,得有root权限

3.关于mode_t的定义;

A:mode_t的定义实际就是unsigned int 形式的

B:但是函数chmod(const char *path,mode_t mode)在解释mode_t时时将这里的mode当成8进制去解释

4.参数mode有以下几种组合:

S_ISUID (04000) set-user-ID (set process effective user ID on

execve(2)) //文件的(set user-id on execution)位

S_ISGID (02000) set-group-ID (set process effective group ID on

execve(2); mandatory locking, as described in

fcntl(2); take a new file's group from parent direc‐

tory, as described in chown(2) and mkdir(2)) //文件的(set group-id on execution)位

S_ISVTX (01000) sticky bit (restricted deletion flag, as described in

unlink(2)) //文件的sticky位

S_IRUSR (00400) read by owner //文件所有者可读取权限

S_IWUSR (00200) write by owner //文件所有者具有可写入权限

S_IXUSR (00100) execute/search by owner ("search" applies for direc‐

tories, and means that entries within the directory

can be accessed) //文件所有者具有可执行权限

S_IRGRP (00040) read by group //用户组具有可读取权限

S_IWGRP (00020) write by group //用户组具有可执行权限

S_IXGRP (00010) execute/search by group //用户组具有可执行权限

S_IROTH (00004) read by others //其他用户具有可读取权限