Linux系统编程21 文件系统 - 文件属性 st_mode

   日期:2020-05-06     浏览:124    评论:0    
核心提示:分析 mode_t st_modest_mode 是一个16位的位图,用于表示文件类型,文件访

分析 mode_t st_mode

st_mode 是一个16位的位图,用于表示文件类型,文件访问权限,及特殊权限位。

mhr@ubuntu:~/work/linux/wenjianxitong/20$ ls -l
total 24
-rwxrwxr-x 1 mhr mhr       8936 May  4 09:04 a.out
-rw-rw-r--  1 mhr mhr        436 May  4 09:04 big.c
-rw-------   1 mhr mhr 5368709120 May  4 09:04 bigfile
-rw-------   1 mhr mhr 5368709120 May  4 09:07 bigfile.bak
mhr@ubuntu:~/work/linux/wenjianxitong/20$ 

即最前面一串 -rwxrwxr-x 等等,这些信息全部存放在 st_mode 中,以位图的形式存放。mode_t 是一个16位的整型数。mode_t 由2部分组成: 文件类型 + 文件权限

文件类型  user权限    group 同组用户的权限     other 用户的权限
 -        rwx             rwx                  r-x 

文件类型分为如下几类:
dcb-lsp 7种类型

1 普通文件          -
2 目录文件          d
3 块特殊文件        b
4 字符特殊文件      c
5 FIFO            p
6 套接字(socket)   s
7 符号链接(symbolic link) l

用如下宏测试文件类型,成立返回真,不成立返回假

位图

.

 struct stat {
           dev_t     st_dev;         文件所在设备的ID
           ino_t     st_ino;         节点号
           mode_t    st_mode;        文件的类型和存取的权限
           nlink_t   st_nlink;       链向此文件的连接数(硬连接)
           uid_t     st_uid;         
           gid_t     st_gid;         
           dev_t     st_rdev;        设备ID号,针对设备文件
           off_t     st_size;        文件大小,字节为单位
           blksize_t st_blksize;     系统块的大小
           blkcnt_t  st_blocks;      文件所占块数

           

           struct timespec st_atim;  最近存取时间
           struct timespec st_mtim;  最近修改时间
           struct timespec st_ctim;  

       #define st_atime st_atim.tv_sec      
       #define st_mtime st_mtim.tv_sec
       #define st_ctime st_ctim.tv_sec
       };
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服