详细对比C语言中的chmod()函数和fchmod()函数
C语言chmod()函数:修改文件权限 #include <sys/types.h> #include <sys/stat.h> 定义函数: int chmod(const char * path,mode_t mode); 函数说明:chmod()会依参数mode 权限来更改参数path 指定文件的权限。 参数 mode 有下列数种组合: 注:只有该文件的所有者或有效用户识别码为0,才可以修改该文件权限。 基于系统安全,如果欲将数据写入一执行文件,而该执行文件具有S_ISUID 或S_ISGID 权限,则这两个位会被清除。如果一目录具有S_ISUID 位权限,表示在此目录下只有该文件的所有者或root 可以删除该文件。 返回值:权限改变成功返回0,失败返回-1,错误原因存于errno. 错误代码: 范例 /* 将/etc/passwd 文件权限设成S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH */ #include <sys/types.h> #include <sys/stat.h> main() { chmod("/etc/passwd",S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); } C语言fchmod()函数:修改文件的权限 #include <sys/types.h> #include <sys/stat.h> 定义函数: int fchmod(int fildes,mode_t mode); 函数说明:fchmod()会依参数mode 权限来更改参数fildes 所指文件的权限。参数fildes 为已打开文件的文件描述词。参数mode 请参考chmod ()。 返回值:权限改变成功则返回0,错误原因存于errno. 错误代码: 范例 #include <sys/stat.h> #include <fcntl.h> main() { int fd; fd = open("/etc/passwd",O_RDONLY); fchmod(fd,S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); close(fd); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |