注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

多多的爹

 
 
 

日志

 
 

读程序,学习Linux编程(二十二)  

2010-08-29 21:36:12|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.1. 文件权限

继续下一行,umask。

mode_t umask(mode_t mask);

指定当前进程在建立文件或目录时候的属性默认值。

重点不是这个函数,是他的参数。在终端中输入ls -l,得到下面的结果:

clip_image002

左边第一栏类似于-rw-r--r--的,表示文件类型和权限。

列1如果是d,表示是目录,否则是-。

后面每3列是一节,分别表示用户、同组用户和其它用户对该文件的操作权限。每节的3列分别表示是否能对该文件做读、写和执行。

用1和0表示是否具有相应位的权限,那么rw-r--r--就可以表示成:110100100,用8进制表示就是644。在程序里,用8进制数来指定权限。

除了umask,还可以用chmod修改文件权限:

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

要获得文件权限,用函数stat

int stat(const char *path, struct stat *buf);

struct stat {

dev_t st_dev; /* ID of device containing file */

ino_t st_ino; /* inode number */

mode_t st_mode; /* protection */

nlink_t st_nlink; /* number of hard links */

uid_t st_uid; /* user ID of owner */

gid_t st_gid; /* group ID of owner */

dev_t st_rdev; /* device ID (if special file) */

off_t st_size; /* total size, in bytes */

blksize_t st_blksize; /* blocksize for file system I/O */

blkcnt_t st_blocks; /* number of 512B blocks allocated */

time_t st_atime; /* time of last access */

time_t st_mtime; /* time of last modification */

time_t st_ctime; /* time of last status change */

};

其中参数st_mode保存了文件的权限。

具体内容可以用man 2 stat查阅。

  评论这张
 
阅读(3)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017