文件属性

int stat(const char* path,struct stat *s);path文件路径+文件名,s保存文件信息结构体的地址。返回值,成功0,失败-1.

struct stat

{

dev_t st_dev;//文件设备编号

ino_t st_ino;//节点

mode_t st_mode;//文件的类型和存取的权限

nlink_t st_nlink;//连到该文件的硬链接的数目,刚建立的文件值为1

udi_t st_uid;//用户ID

gid_t st_gid;//ID

dev_t st_rdev;//设备类型

off_t st_size;//文件大小

unsigned long st_blksize;//块大小

unsigned long st_blocks;//块数

time_t st_atime;//最后访问时间

time_t st_mtime;//最后修改时间

time_t st_ctime;//最后改变属性时间

};

1.st_mode文件类型

macro type of file
S_ISREG() regular file
S_ISDIR() directory file
S_ISCHR() character special file
S_ISBLK() block special file
S_ISFIFO() pipe or FIFO
S_ISLINK() symbolic link
S_ISSOCK() socket
2.用户和组

Linux是一个多用户操作系统,因此每个文件都有属性,记录着这个文件属于哪个用户/组。用户/组信息可以被修改,可以通过chown来修改文件所属的组合用户信息。新文件所属用户和组,是创建该文件的进程所属用户和组。

3.文件访问权限

文件使用了9个位来表示访问权限,和文件类型一起,保存在st_mode 中。9位分为3组,每组3位,分别表示读、写、可执行权限。三个组分别表示拥有该文件的账户,用户该文件的组,其它用户组的权限,如果对应位是1,表示有权限,如果是0表示没权限。

Linux提供一些宏,来测试文件的权限位。

st_mode mask meaning
S_IRUSR user-read
S_IWUSR user-write
S_IXUSR user-execute
S_IRGRP group-read
S_IWGRP group-write
S_IXGRP group-execute
S_IROTH other-read
S_IWOTH other-write
S_IXOTH other-execute
4.st_size文件长度

保存文件的长度,write函数会修改该属性,也可以通过truncate修改文件大小。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值