Chinaunix首页 | 论坛 | 博客
  • 博客访问: 62871
  • 博文数量: 26
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 255
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-18 10:40
文章分类

全部博文(26)

文章存档

2013年(26)

我的朋友

分类: LINUX

2013-09-21 11:49:55

#include
int stat(const char *restrict pathname,struct stat *restrict buf);//由文件路径名字做第一个参数,得到文件的信息存入buf
int fstat(int filedes,struct stat *buf);//根据文件描述符来做第一个参数,得已经在描述符filedes上打开文件的信息存入buf;
int lstat(const char *restrict pathname,struct stat *restric buf);//文件路径做第一参数,可以得到符号链接信息而不是符号链接引用的文件。文件类型可以是符号链接文件。

struct stat{   ...................};//buf返回指向此结构体的指针,包含文件的信息。
文件类型:regular file,directory file block file,character file ,socket ,fifo,symbolic link

与进程相关联的ID有6个或者更多:实际用户ID,实际组ID  // 我们实际是谁 这个是文件的拥有者,文件的性质
                                                         有效用户ID,有效组ID ,附加组ID  //  用于文件访问权限检查,进程的性质
                                                          保存的设置用户ID,保存的设置组ID   //  由exec函数保存
在struct stat结构体的st_mode中有两个特殊位,设置用户ID(set-user-ID)位,设置组ID(set-group_ID)位。可以使得执行此文件的进程的有效用户ID,设置为文件所有者的用户ID。这样就可以访问文件。例如超级用户设置某个文件的设置用户ID位,然后当该程序由另一个程序执行时,则该进程对此文件或者程序具有超级用户特权。而不用管此执行文件的实际进程是的实际用户ID是什么。

st_mode 包含文件的访问权限位,9种权限:S_IRUSR,S_IRGRP,S_IROTH,S_IXOTH等
阅读(765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~