APUE学习笔记——4.2结构体 struct stat 及其相关函数介绍
结构体struct stat
struct stat {dev_t st_dev; // 文件所在设备的设备id,可以分解为主设备号和此设备号ino_t st_ino; // inode号mode_t st_mode; // 文件的类型、存取权限等nlink_t st_nlink; // 文件硬连接数uid_t st_uid; // 文件拥有者的用户idgid_t st_gid; // 文件拥有者的组iddev_t st_rdev; // 特殊文件的设备idoff_t st_size; // 总的size,总字节数,用bytes计量blksize_t st_blksize; // 文件系统I/O有效率的“首选”的块大小,进行I/O的块大小blkcnt_t st_blocks; // 分配给文件块数量,以512-byte为单位,可能存在hole,所以可能小于st_size/512time_t st_atime; // 最后访问的时间time_t st_mtime; // 最后修改的时间time_t st_ctime; // 最后一次发生状态改变的时间(如owner、mode、link数等等)};
int 类型,其中高12位为主设备号(用宏MAJOR(st_dev)获得),低20位为此设备号(用宏MINOR(dev_t
dev)分解获取),
st_mtime st_ctime全部的。
S_IFMT 0170000 文件类型的位遮罩S_IFSOCK 0140000 socketS_IFLNK 0120000 符号链接(symbolic link)S_IFREG 0100000 一般文件S_IFBLK 0060000 区块装置(block device)S_IFDIR 0040000 目录S_IFCHR 0020000 字符装置(character device)S_IFIFO 0010000 先进先出(fifo)S_ISUID 0004000 文件的(set user-id on execution)位S_ISGID 0002000 文件的(set group-id on execution)位S_ISVTX 0001000 文件的sticky位S_IRWXU 00700 文件所有者的遮罩值(即所有权限值)S_IRUSR 00400 文件所有者具可读取权限S_IWUSR 00200 文件所有者具可写入权限S_IXUSR 00100 文件所有者具可执行权限S_IRWXG 00070 用户组的遮罩值(即所有权限值)S_IRGRP 00040 用户组具可读取权限S_IWGRP 00020 用户组具可写入权限S_IXGRP 00010 用户组具可执行权限S_IRWXO 00007 其他用户的遮罩值(即所有权限值)S_IROTH 00004 其他用户具可读取权限S_IWOTH 00002 其他用户具可写入权限S_IXOTH 00001 其他用户具可执行权限
(buf.st_mode & S_IFREG) == S_IFREG
S_ISREG(s_tmode) is it a regular file?S_ISDIR(s_tmode) directory?S_ISCHR(s_tmode) character device?S_ISBLK(s_tmode) block device?S_ISFIFO(s_tmode) FIFO (named pipe)?S_ISLNK(s_tmode) symbolic link? (Not in POSIX.1-1996.)S_ISSOCK(s_tmode) socket? (Not in POSIX.1-1996.)
stat,fstat和lstat
#include <sys/stat.h>int stat(const char *restrict pathname,struct stat *restrict buf);int fstat(int fd,struct stat *buf);int lstat(const char *restrict pathname,struct stat *restrict buf);int fstatat(int fd,const char *restrict pathname,struct stat *restrict buf,int flag);All four return: 0 if OK,−1 on error
APUE学习笔记——4.2结构体 struct stat 及其相关函数介绍的更多相关文章
- Go语言学习笔记十: 结构体
Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...
- matlab学习笔记12_3串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields
一起来学matlab-matlab学习笔记12 12_3 结构体 串联结构体,按属性创建含有元胞数组的结构体,filenames,isfield,isstruct,orderfields 觉得有用的话 ...
- matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段
一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...
- Swift 学习笔记 (类和结构体)
类和结构体是一种多功能且灵活的构造体.通过使用与现存常量 变量 函数完全相同的语法来在类和结构体中定义属性和方法以添加功能. Swift中不需要你为自定义的类和结构体创建独立的结构和实现文件.在Swi ...
- C#学习笔记_12_枚举&结构体
12_枚举&结构体 枚举 是一种数据类型 适用于某些取值范围有限的数据 语法: [访问权限修饰符] enum 枚举名 { 枚举值 } 枚举名遵循大驼峰命名法 枚举一般情况下是和switch c ...
- C#学习笔记05--枚举/结构体
一.枚举 当变量的取值范围是固定的几个时, 就可以使用枚举类型, 这样会更加简洁方便 1.1.定义: 访问修饰符 enum 枚举类型名 { 成员1, 成员2, 成员3, ... } publi ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- Go语言学习笔记(四)结构体struct & 接口Interface & 反射reflect
加 Golang学习 QQ群共同学习进步成家立业工作 ^-^ 群号:96933959 结构体struct struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套: go中的struc ...
- (转) C/C++中结构体(struct)知识点强化
本文转载于 http://pcedu.pconline.com.cn/empolder/gj/c/0503/567942_all.html#content_page_1 所有程序经过本人验证,部分程序 ...
随机推荐
- Centos下Nginx配置WEB访问日志并结合shell脚本定时切割
在一个成熟的WEB系统里,没有日志管理是不可以的,有了日志,可以帮助你得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等. ...
- nginx windows版本 1024限制
Windows版本因为文件访问句柄数被限制为1024了,当访问量大时就会无法响应. 会有如下错误提示:maximum number of descriptors supported by select ...
- 20145313张雪纯 《Java程序设计》第9周学习总结
20145313张雪纯 <Java程序设计>第9周学习总结 教材学习内容总结 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无需接 ...
- MR案例:小文件处理方案
HDFS被设计来存储大文件,而有时候会有大量的小文件生成,造成NameNode资源的浪费,同时也影响MapReduce的处理效率.有哪些方案可以合并这些小文件,或者提高处理小文件的效率呢? 1). 所 ...
- PHP中的strtotime()函数
参见: http://www.phppan.com/2011/06/php-strtotime/ http://developer.51cto.com/art/201107/275478.htm PH ...
- mvn设置
mvn仓库网址: https://mvnrepository.com 安装好maven后,一定要确认安装路径下的setting.xml与本地仓库中的setting.xml一致. 坐标: 什么是坐标? ...
- Dijkstra+优先队列
/* Dijkstra的算法思想: 在所有没有访问过的结点中选出dis(s,x)值最小的x 对从x出发的所有边(x,y),更新 dis(s,y)=min(dis(s,y),dis(s,x)+dis(x ...
- Spring Boot CRUD+分页(基于Mybatis注解方式)
步骤一:关于Mybatis Mybatis 是用来进行数据库操作的框架.其中分页使用Mybatis中的PageHelper插件. Mybatis与hibernate对比: 1.hibernate是一个 ...
- visual studio中添加existing web site, website名字附带数字
用visual studio直接运行website项目 发现有一个conifg文件的配置,路径是solution同级目录下的.vs/config文件夹下有一个applicationhost.confi ...
- 第十篇:Spark SQL 源码分析之 In-Memory Columnar Storage源码分析之 query
/** Spark SQL源码分析系列文章*/ 前面讲到了Spark SQL In-Memory Columnar Storage的存储结构是基于列存储的. 那么基于以上存储结构,我们查询cache在 ...