博客
关于我
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/

你可能感兴趣的文章
logstash mysql 准实时同步到 elasticsearch
查看>>
Luogu2973:[USACO10HOL]赶小猪
查看>>
mabatis 中出现&lt; 以及&gt; 代表什么意思?
查看>>
Mac book pro打开docker出现The data couldn’t be read because it is missing
查看>>
MAC M1大数据0-1成神篇-25 hadoop高可用搭建
查看>>
mac mysql 进程_Mac平台下启动MySQL到完全终止MySQL----终端八步走
查看>>
Mac OS 12.0.1 如何安装柯美287打印机驱动,刷卡打印
查看>>
MangoDB4.0版本的安装与配置
查看>>
Manjaro 24.1 “Xahea” 发布!具有 KDE Plasma 6.1.5、GNOME 46 和最新的内核增强功能
查看>>
mapping文件目录生成修改
查看>>
MapReduce程序依赖的jar包
查看>>
mariadb multi-source replication(mariadb多主复制)
查看>>
MariaDB的简单使用
查看>>
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>