stat 函数详解

stat 函数详解stat函数作用:获取文件信息头文件:include<sys/types.h>#include<sys/stat.h>#include<unistd.h>​函数原型:intstat(constchar*path,structstat*buf)​返回值:成功返回0,失败返回-1;​参数:文件路径(名),structstat…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

stat函数

作用:获取文件信息

头文件:include <sys/types.h> #include <sys/stat.h> #include <unistd.h>

​函数原型:int stat(const char *path, struct stat *buf)

​返回值:成功返回0,失败返回-1;

​参数:文件路径(名),struct stat 类型的结构体

Jetbrains全家桶1年46,售后保障稳定

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 主要包含了 3 部分信息:

  • 15-12 位保存文件类型

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206759.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • git第一次拉取远程代码_第一次从gitlab拉项目到本地

    git第一次拉取远程代码_第一次从gitlab拉项目到本地命令1、查看远程所有分支gitbranch-r#查看远程所有分支PSC:\Users\Lenovo\Desktop\tt\dc-biztable>gitbranch-rorigin/Developorigin/masterorigin/dev2、拉取远程分支到本地gitfetchorigin远程分支名:本地分支名这个远程分支名和本地分支名可以不一样,不过一般都会取一样的名字这样不容易混淆#拉取远程Develop分支到本地Develop

    2025年7月25日
    4
  • Java数据结构与算法(10) – ch05链表实现队列(Link Queue)

    Java数据结构与算法(10) – ch05链表实现队列(Link Queue)

    2021年9月2日
    70
  • c语言 按字节异或,C语言位数算,按位异或.只知道按位异或原理 不知道这题怎么做…

    c语言 按字节异或,C语言位数算,按位异或.只知道按位异或原理 不知道这题怎么做…从键盘读入两个整数,对它们进行按位异或操作,把操作结果按二进制位放在字符数组str中,最后输出该字符串。提示:第2个空建议使用条件表达式(?表达式)实现!程序的运行效果应类似地如图1和图2所示,图1中的1270和图2中的123456是从键盘输入的内容。Pleaseinputnum1andnum2:1270127^0=0000000000000000000000000111…

    2022年6月5日
    30
  • 小树311_森林小道

    小树311_森林小道原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

    2022年8月9日
    6
  • 信息服务器怎么恢复,服务器数据恢复怎么弄[通俗易懂]

    信息服务器怎么恢复,服务器数据恢复怎么弄[通俗易懂]原标题:服务器数据恢复怎么弄服务器数据恢复怎么弄?说到服务器数据恢复,很多外行人或许不太明白。所谓的服务器数据恢复,首先需要拆分解释一下。何为服务器数据?小编给各位的解释就是:位于服务器存储介质上的信息就可以统称为服务器数据。那么,什么样的情况下需要服务器数据恢复呢?服务器数据恢复的前提是服务器的数据有损坏。何为数据损坏?数据信息发生意料之外的变化即为损坏或数据破坏!因此如果服务器损坏了大家也不要…

    2022年6月16日
    28
  • a标签下划线

    a标签下划线页面中有一处box中的a标签都被加上了下划线,查找元素却没有找到css中的underline。原因是<a>标签默认是有下划线的,而一般看到的<a>标签链接中的下划线都被覆盖掉了,所以误以为<a>标签的默认状态是没有下划线的,出现下划线是有css另外渲染的。其实下划线才是<a>标签的默认状态在head中加上下面一段覆盖掉<…

    2022年5月2日
    156

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号