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

分析 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

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

2ecf280f74975c5c884659db0a24a1d6.png

333f3a5c7c156550acee0dd63ebb4602.png

位图

2cbd0e529d7f282bd9881ea808219b62.png

.

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

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值