stat函数详解

2023-10-31

Linux系统函数之文件系统管理(二)

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 位保存文件访问权限

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stat函数详解 的相关文章

  • 索引的原理分析:用B+树来做索引

    文章目录 前言 为什么索引要存放到硬盘上 如何评价索引的数据结构设计好坏 二叉树的局限性 什么是 B 树 什么是 B 树 前言 索引其实就是一种数据结构 那么 索引的数据结构究竟是怎样的 对索引底层的数据结构有了更深入的了解后 就会更了解索
  • SpringBoot+Vue 的家政服务管理平台(附源码,数据库)

    文章目录 1 背景 2 主要技术 3 可行性分析 4 系统设计 5系统的详细设计与实现 5 1前台模块设计 5 2后台功能模块 源码下载地址 1 背景 本系统主要是设计出家政服务管理平台 基于B S构架 后台数据库采用了Mysql 可以使数
  • 做爬虫会有前途吗?

    阅读文本大概需要 5 分钟 这几年随着人工智能领域的大火 Python 这门语言逐渐出现在主流视野中 Python 语法易懂 编写简洁 并且还拥有非常丰富的库 很多人工智能项目首选的语言就是用 Python 可以说是人工智能把 Python
  • 2021年氯化工艺实操考试视频及氯化工艺考试试题

    题库来源 安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通 氯化工艺实操考试视频是安全生产模拟考试一点通生成的 氯化工艺证模拟考试题库是根据氯化工艺最新版教材汇编出氯化工艺仿真模拟考试 2021年氯化工艺实操考试视频及氯化工艺考试
  • Solidity 从入门到实战(一)

    solidity 从入门到实战 一 注意 本专栏主要来自于https www bilibili com video BV1St411a7Pk p 11 spm id from pageDriver的学习笔记 编写第一个案例 声明版本号 pr
  • 计算机下方如何添加启动项,开机设置启动项,如何添加开机启动项

    开机启动项指的是当计算机在开机的时候会随着系统同时启动的程序组件或者软件 开机启动项虽然是不可避免的 但是开机启动项越多就会导致开机的时候需要启动的程序过多 这样会延长计算机的开机时间 甚至还会延缓计算机的运行速度 为此 设置好计算机的开机
  • stata怎么判断是否存在异常值_基于Stata软件异常值识别与处理的全流程(原创)...

    来源 参考Stata帮助文件 由Taotao Tu原创 1 程序包的安装 首先 我们一起安装一下winsor2命令 方法一 ssc install winsor2 这是安装程序最简单的方法 从下图可以看到 我们已经安装好程序了 如果上面的方
  • 输入经纬度查询位置

    一 百度Web地图 1 进入百度地图 https map baidu com 2 点击下方的 地图开放平台 3 进入平台下拉 找到 工具支持 gt 坐标拾取器 4 勾选 坐标反查 输入经纬度 以英文逗号隔开 备注 百度地图手机端App 暂不
  • SQL注入篇--基础注入

    SQL注入篇 基础注入 1 SQL注入原理 sql注入的原理就是在服务器后端对数据库进行操作请求之前 人为地对sql语句做一些恶意注入 从而达到人为预期效果 造成数据泄露甚至数据破坏 注入漏洞在OWASP2021年的总结中位列TOP10的第
  • java学习笔记------接口

    接口 就是一种规则 是对行为的抽象 接口的定义和使用 接口用关键字interface来定义 public interface 接口名 接口不能实例化 接口和类之间是实现关系 通过implements关键字表示 public class 类名
  • 成为一名Java架构师的必修课

    一 热门框架源码学习 设计模式篇 Spring5源码解读篇 Mybatis篇 SpringBoot2篇 二 微服务架构 架构设计篇 BAT互联网架构这些年的演进分析 国内外常见分布式系统架构状况介绍 微服务架构指南 领域驱动设计DDD模型
  • ESG评级能否促进企业绿色转型(2009-2021年)

    参照胡洁 2023 的做法 对来自数量经济技术经济研究 ESG评级能否促进企业绿色转型 基于多时点双重差分法的验证 一文中的基准回归部分进行复刻 本文从非正式环境规制视角出发 基于商道融绿首次公布上市公司 ESG 评级的外生冲击 以2009
  • URL编码与解码

    通常如果一样东西需要编码 说明这样东西并不适合传输 原因多种多样 如Size过大 包含隐私数据 对于Url来说 之所以要进行编码 是因为Url中有些字符会引起歧义 例如Url参数字符串中使用key value键值对这样的形式来传参 键值对之
  • vue在线预览word,pdf, xls,ppt 文档

    首先先踩坑 也不算坑 只是跟我的需求不匹配 一 官方渠道 使用微软提供的Office Online平台只需要一个网址即可在线查看Xls doc PPT等文档 http view officeapps live com op view asp
  • 第二个项目(第6210小时时进行)

    给老师演示过物理效果后 老师甚为满意 于是把我推荐给了他兼职的公司的老总 但是老总模棱两可的态度效果不佳 老师怕我不开心 告诉我 他这里项目多的做不完 于是进入了下一个项目 用到的工具是qt osg 老师写框架 我做模块
  • AOP切入同类调用方法-AopContext.currentProxy()

    本文链接 https blog csdn net u014788227 article details 90111662 常规使用spring的AOP功能 就是对一个service的B方法进行切入记录日志 AOP能起作用 但是假如B方法被s
  • Anaconda/pip常见命令

    目录 一 Conda使用 1 1 conda基础命令 1 2 添加第三方源 二 pip常见命令 一 Conda使用 1 1 conda基础命令 打开anaconda Prompt 输入conda list 就会显示已经安装好的库 如果这些库
  • 尿沉渣图像处理——有形成分边缘检测

    有形成分边缘检测 处理思路 1 将彩色图像灰度化 以去除图像冗余信息 2 使用中值滤波 以去除椒盐噪声 3 邻域滤波 使图像模糊 以便于去除刻度框阴影 4 Canny算法与Sobel算法边缘检测后叠加平均 使细胞可形成连通域 5 孔洞填充
  • html sql连接mysql数据库_HTML连接sql数据库

    怎样从HTML网页中获取SQL数据库里的数据 我现在是一名学生 第一学期快结束了 老师要CSS布局HTML小编今天和大家分享我们每个学习小组用C 做HTML是无法读取数据库的 HTML是页面前端脚本语言 要想从HTML网页中获取SQL数据库

随机推荐

  • GitLab在项目的环境搭建和基本的使用

    目录 gitlab 使用入门 1 导读 本教程主要讲解了GitLab在项目的环境搭建和基本的使用 可以帮助大家在企业中能够自主搭建GitLab服务 并且可以GitLab中的组 权限 项目自主操作 GitLab简介 GitLab环境搭建 Gi
  • mongo-删除重复数据

    mongo 删除重复数据 使用aggregate聚合查询重复数据 group中是查询条件 根据你的字段来聚合相同的数据 count用来统计重复出现的次数 match来过滤没有重复的数据 db getCollection 你的集合名 aggr
  • Object.assign是浅拷贝还是深拷贝?

    话不多说先举个例子 let source a 1 let target Object assign source console log target a 1 source a 2 console log source a 2 consol
  • VMware Tools 启动脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义启动脚本,请确保该脚本没有错误。您也可以提交支持请求,报告此问题。...

    第一步 sudo apt get autoremove open vm tools 第二步 sudo apt get install open vm tools desktop 然后重启 转载于 https www cnblogs com
  • qt实现简单的聊天页面(纯页面)

    我是模仿qq页面来做的 这是效果图 很简陋 基础的一些部分都比较简单 写一些对我来讲是难点或者有意思的东西吧 记录一些 1 这里的 开心 是使用painter画上去的 因为右边已经有图标了 所以不太好使用QLabel来进行绘制 QPaint
  • MacBook外接显示器设置方法(新手入门贴)

    小屏幕的MacBook MacBook Pro放在桌上长时间使用 眼睛比较累 而且 长时间低头看屏幕 易得颈椎病 绝对有损健康 配一台大屏幕的外置显示器不失为两全其美的好办法 首先 得买一台中意的大屏幕LED显示器 废话undefined
  • steam植物大战僵尸汉化补丁使用教程

    植物大战僵尸作为小时候印象最深的游戏之一 上线便收获了一大波人的喜爱与好评 仍至今日 还有许多小伙本们沉浸其中 不过steam版本并不支持简体中文语言 网络上面虽然一大堆但都是很久之前的 会出现一些黑屏的问题 所以小编此次带来了steam植
  • ILSVRC竞赛详细介绍(ImageNet Large Scale Visual Recognition Challenge)

    ILSVRC ImageNet Large Scale Visual Recognition Challenge 是近年来机器视觉领域最受追捧也是最具权威的学术竞赛之一 代表了图像领域的最高水平 ImageNet数据集是ILSVRC竞赛使用
  • QT使用ODBC连接MySQL

    本文主要讲述QT使用ODBC连接MySQL数据库的过程 第一步 下载连接工具 链接如下 https cdn mysql com Downloads Connector ODBC 8 0 mysql connector odbc 8 0 28
  • vmware17:下载安装

    1 访问vm官网下载vm17安装包 下载 VMware Workstation Pro CN 选择windows下载 下载成功后 双击装包安装 直接下一步安装 勾选接受许可条款下一步 更改安装路径 继续下一步 最后点击安装 最后等待完成输入
  • 线程的属性 —— 分离的状态(detached state)、栈地址(stack address)、栈大小(stack size)

    参考 四十二 线程 线程属性 作者 FadeFarAway 发布时间 2017 01 17 14 09 55 网址 https blog csdn net FadeFarAway article details 54576771 目录 引入
  • 科技云报道:生成式AI已成为企业新兴风险,但我们不应该因噎废食

    科技云报道原创 2023年 生成式AI技术破茧成蝶 引发了一场全球范围的数字革命 从最初的聊天 下棋开始 到医疗 金融 制造 教育 科研等 生成式AI表现出了强大的创造力和无限潜力 据不完全统计 截至今年8月底 全国已经发布了逾百个行业AI
  • cccccc

    Source code recreated from a class file by IntelliJ IDEA powered by FernFlower decompiler package com gb soa omp ccommon
  • idea找不到版本的可能性总结

    当spring boot starter parent下面的版本报红时并不是这个版本不存在 而是因为idea会默认缓存Maven本地仓库已存在的中的依赖项 只是我们引入的的父依赖版本 本地仓库中不存在 所以就报错了 解决方案就是我们清除一下
  • 【Pytorch with fastai】第 3 章 :数据伦理

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Linux 篇:Linux定时任务

    什么是crond crond是linux用来定期执行命令或指定程序任务的一种服务 安装完操作系统后 默认会启动crond任务调度服务 crond服务会定期检查系统中是否有要执行的任务 如果有要执行的任务便会自动执行该任务 crond定时任务
  • Oracle数据库DBA权限回收操作参考

    1 基本操作指令 查看当前系统 ORACLE SID linux su oracle cat etc oratab orcl oracle app oracle product 11 2 0 dbhome 1 N crm oracle ap
  • 网络层协议介绍

    网络层的功能 1 定义了基于IP协议的逻辑地址 2 链接不同的媒介类型 3 选择数据通过网络的最佳路径 IP数据包格式 数据封装的时候在网络层会封装ip地址的头部 形成ip数据包 IP数据包格式 分为20字节的固定部分 表示每个ip数 据包
  • python压缩文件夹下的文件及子文件夹

    压缩某一文件夹下的所有文件 python import os import zipfile def is child dir dir1 dir2 if dir1 dir2 return True return dir1 startswith
  • stat函数详解

    Linux系统函数之文件系统管理 二 stat函数 作用 获取文件信息 头文件 include