LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 837|回复: 3

关于文件打开函数Open的问题

[复制链接]
发表于 2006-1-24 14:55:38 | 显示全部楼层 |阅读模式
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);

其中有个参数mode_t mode参数是用来指定文件权限的
可以使用数字来设置mode。如00777表示这个文件对所有人可读可写可运行
我的问题是
前面两位是干什么?就是例子中的00?
发表于 2006-1-24 22:09:40 | 显示全部楼层
open中的mode_t是设置创建文件的权限的, 它和当前的进程的umask的交就是创建的新文件的权限. 0777是8进制的数, 一个文件有9个权限位, 8进制就是3个数字, 前面的0是指8进制, 最高位是Owner的权限, 中间是Group的权限, 最后是Other的权限
一般在command line的chmod用数字, 在应用程序中用宏来表示, 详情查看:
man 2 open
man chmod.
回复 支持 反对

使用道具 举报

发表于 2006-1-27 20:17:34 | 显示全部楼层
好像只关心后三位吧
回复 支持 反对

使用道具 举报

发表于 2006-2-7 11:16:17 | 显示全部楼层
00用来表示后面的777是八进制数,不是十进制数。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表