博客
关于我
stat函数详解
阅读量:231 次
发布时间:2019-02-28

本文共 2242 字,大约阅读时间需要 7 分钟。

stat函数

  • ​ 作用:获取文件信息
  • ​ 头文件include <sys/types.h> #include <sys/stat.h> #include <unistd.h>
  • ​ 函数原型int stat(const char *path, struct stat *buf)
  • 返回值:成功返回0,失败返回-1;
  • 参数:文件路径(名),struct stat 类型的结构体

struct stat 结构体详解:

struct stat{    dev_t     st_dev;     /* ID of device containing file */文件使用的设备号    ino_t     st_ino;     /* inode number */    索引节点号     mode_t    st_mode;    /* protection */  文件对应的模式,文件,目录等    nlink_t   st_nlink;   /* number of hard links */    文件的硬连接数      uid_t     st_uid;     /* user ID of owner */    所有者用户识别号    gid_t     st_gid;     /* group ID of owner */   组识别号      dev_t     st_rdev;    /* device ID (if special file) */ 设备文件的设备号    off_t     st_size;    /* total size, in bytes */ 以字节为单位的文件容量       blksize_t st_blksize; /* blocksize for file system I/O */ 包含该文件的磁盘块的大小       blkcnt_t  st_blocks;  /* number of 512B blocks allocated */ 该文件所占的磁盘块      time_t    st_atime;   /* time of last access */ 最后一次访问该文件的时间       time_t    st_mtime;   /* time of last modification */ /最后一次修改该文件的时间       time_t    st_ctime;   /* time of last status change */ 最后一次改变该文件状态的时间   };

stat结构体中的st_mode 则定义了下列数种情况:

   S_IFMT   0170000    文件类型的位遮罩    S_IFSOCK 0140000    套接字    S_IFLNK 0120000     符号连接    S_IFREG 0100000     一般文件    S_IFBLK 0060000     区块装置    S_IFDIR 0040000     目录    S_IFCHR 0020000     字符装置    S_IFIFO 0010000     先进先出​    S_ISUID 04000     文件的(set user-id on execution)位    S_ISGID 02000     文件的(set group-id on execution)位    S_ISVTX 01000     文件的sticky位​    S_IRUSR(S_IREAD) 00400     文件所有者具可读取权限    S_IWUSR(S_IWRITE)00200     文件所有者具可写入权限    S_IXUSR(S_IEXEC) 00100     文件所有者具可执行权限​    S_IRGRP 00040             用户组具可读取权限    S_IWGRP 00020             用户组具可写入权限    S_IXGRP 00010             用户组具可执行权限​    S_IROTH 00004             其他用户具可读取权限    S_IWOTH 00002             其他用户具可写入权限    S_IXOTH 00001             其他用户具可执行权限​    上述的文件类型在POSIX中定义了检查这些类型的宏定义:    S_ISLNK (st_mode)    判断是否为符号连接    S_ISREG (st_mode)    是否为一般文件    S_ISDIR (st_mode)    是否为目录    S_ISCHR (st_mode)    是否为字符装置文件    S_ISBLK (s3e)        是否为先进先出    S_ISSOCK (st_mode)   是否为socket    若一目录具有sticky位(S_ISVTX),则表示在此目录下的文件只能被该文件所有者、此目录所有者或root来删除或改名,在linux中,最典型的就是这个/tmp目录啦。​

st_mode 的结构

st_mode 主要包含了 3 部分信息:

  • 15-12 位保存文件类型

  • 11-9 位保存执行文件时设置的信息

  • 8-0 位保存文件访问权限

转载地址:http://fbzi.baihongyu.com/

你可能感兴趣的文章
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_生成插入Sql语句_实际操作02---大数据之Nifi工作笔记0041
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_不带分页处理_01_QueryDatabaseTable获取数据_原0036---大数据之Nifi工作笔记0064
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从Oracle11G同步数据到Mysql_亲测可用_解决数据重复_数据跟源表不一致的问题---大数据之Nifi工作笔记0065
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
查看>>