chmod、fchmod函数
来源:互联网 发布:微信淘宝优惠券群骗局 编辑:程序博客网 时间:2024/05/17 04:50
说明:转载请注明出处
在Linux系统中,可以使用chmod和fchmod函数修改文件的权限。具体见下表:
chmod/fchmod函数
头文件
<sys/types.h>
<sys/stat.h>
函数形式
int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);
返回值
成功
失败
是否设置errno
0
-1
是
说明:这两个函数的区别在于第一个参数不同。chmod要求给出的是文件或目录所在的位置,而fchmod主要针对的是文件,要求调用是使用相应的文件描述符。
mode可以使用如下表所示的宏定义,通过或运算组合获得不同的组合。当然也可以直接给出八进制来设定文件权限。
chmod/fchmod中使用的宏
宏定义
值
说明
S_ISUID
04000
设置用户权限
S_ISGID
02000
设置组用户权限
S_ISVTX
01000
设置sticky位
S_IRUSR
00400
文件所有者的读权限
S_IWUSR
00200
文件所有者的写权限
S_IXUSR
00100
文件所有者的执行权限或目录搜索权限
S_IRGRP
00040
组用户的读权限
S_IWGRP
00020
组用户的写权限
S_IXGRP
00010
组用户的执行权限或目录搜索权限
S_IROTH
00004
其他用户的读权限
S_IWOTH
00002
其他用户的写权限
S_IXOTH
00001
其他用户的执行权限和目录搜索权限
chmod函数出错信息:
EACCES:给出的文件所处路径没有访问权限。
EFAULT:路径指向的文件地址错误。
EIO:发生I/O错误。
ELOOP:给出的文件所在路径中符号链接过多。
ENAMETOOLONG:路径过长。
ENOENT:文件不存在。
ENOMEM:内核内存空间不足。
ENOTDIR:给出的文件所处路径中包含不是目录的部分。
EPERM:有效用户ID与文件拥有者不同,进程无权访问修改文件权限。
EROFS:文件位于只读文件系统。
Fchmod函数出错信息:
EBADF:非法的文件描述符。
EIO:发生I/O错误。
EPERM:有效用户ID与文件拥有者不同,进程无权访问、修改文件。
EROFS:文件位于只读文件系统。
实例:
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(int argc, char *argv[])
{
if ( argc != 2 )
{
printf("Usage: %s filename\n", argv[0]);
return (1);
}
//调用chmod函数,将文件权限修改为"r--r--r-x"形式
if (chmod(argv[1], S_IRUSR | S_IRGRP | S_IROTH | S_IXOTH) < 0)
{
perror("Cannot modify the Permission of the file");
return (1);
}
return (0);
}
运行结果:
[root@localhost test]# ll getcwd
-rwxr-xr-x 1 root root 7102 Apr 29 23:33getcwd
[root@localhost test]# ./chmod getcwd
[root@localhost test]# ll getcwd
-r--r--r-x 1 root root 7102 Apr 29 23:33getcwd
- chmod、fchmod函数
- chmod 与fchmod函数
- chmod和fchmod函数
- 实战chmod函数 fchmod fchmodat
- 4.9 chmod和fchmod函数
- 《UNIX环境高级编程》笔记--chmod函数和fchmod函数
- 详细对比C语言中的chmod()函数和fchmod()函数
- 4.9 chmod和fchmod函数-文件权限修改
- chmod fchmod 系统调用
- chmod()函数和fchmod()函数,open()函数和creat()函数,close()函数,umask命令
- chmod,fchmod,and fchmodat Functions
- 《UNIX环境高级编程》笔记12--chmod函数和fchmod函数
- unix环境高级编程-4.9-chmod,fchmod函数和粘住位
- fchmod
- fchmod
- fchmod()
- uc笔记06---chmod/fchmod,chown/fchown/lchown
- linux chmod和fchmod设置 文件和目录权限设置
- rpm apt-get等的区别
- 设计模式二:工厂方法模式及扩展
- 面向对象2
- poj 2442
- Java系统程序员修炼之道
- chmod、fchmod函数
- 在Windows平台上安装Node.js及NPM模块管理
- struts2输入校验
- mv排除某些文件
- chown、fchown、lchown函数
- JAVA回顾:世界各地程序开发高手谈Java
- ROC图以及AUC的实现代码
- Ubuntu下安装MySql
- 循环节模板 NOJ427Number Sequence