The useage of statfs function

Linux常用库函数 库函数 阅读详情

#include <stdio.h>
#include<stdlib.h>
#include <sys/vfs.h>
#include <error.h>

#define Gsize (1024.00*1024.00*1024.00)
#define Msize (1024.00*1024.00)

#ifndef EXT2_SUPER_MAGIC
#define EXT2_SUPER_MAGIC 0xef53
#endif

int main()
{
        long long blocks,bfree;
        struct statfs fs;
        if(statfs("/",&fs)<0)
        {
                perror("statfs");
                exit(0);
        }

      printf("f_type=%x/n",fs.f_type);      /* type of filesystem (see below) */
      printf("f_bsize=%ld/n",fs.f_bsize);    /* optimal transfer block size */
      printf("f_blocks=%ld/n",fs.f_blocks);   /* total data blocks in file system */
      printf("f_bfree=%ld/n",fs.f_bfree);    /* free blocks in fs */
      printf("f_bavail=%ld/n",fs.f_bavail);   /* free blocks avail to non-superuser */
      printf("f_files=%ld/n",fs.f_files);    /* total file nodes in file system */
      printf("f_ffree=%ld/n",fs.f_ffree);    /* free file nodes in fs */
      printf("f_fsid=%d/n",fs.f_fsid);     /* file system id */
      printf("f_namelen=%ld/n",fs.f_namelen);  /* maximum length of filenames */

        blocks=fs.f_blocks;
        bfree=fs.f_bavail;
//      printf(" %lld/n",blocks);
     printf("/n/n");
        if(fs.f_type==EXT2_SUPER_MAGIC)
        {
                printf("Total size of / is %f G/n",blocks*fs.f_bsize/Gsize);
                printf("Free size of / is %f G/n",bfree*fs.f_bsize/Gsize);
        }
}
//

 

 

 

 

 

功能描述:  
查询文件系统相关的信息。
   
用法:  
#include <sys/vfs.h>    /* 或者 <sys/statfs.h> */

int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);
 
  参数:  
path: 位于需要查询信息的文件系统的文件路径名。    
fd: 位于需要查询信息的文件系统的文件描述词。
buf:以下结构体的指针变量,用于储存文件系统相关的信息

struct statfs {
    long    f_type;     /* 文件系统类型  */
   long    f_bsize;    /* 经过优化的传输块大小  */
   long    f_blocks;   /* 文件系统数据块总数 */
   long    f_bfree;    /* 可用块数 */
     long    f_bavail;   /* 非超级用户可获取的块数 */
   long    f_files;    /* 文件结点总数 */
   long    f_ffree;    /* 可用文件结点数 */
   fsid_t  f_fsid;     /* 文件系统标识 */
   long    f_namelen;  /* 文件名的最大长度 */
};

相关的文件系统类型有:
      ADFS_SUPER_MAGIC      0xadf5
      AFFS_SUPER_MAGIC      0xADFF
      BEFS_SUPER_MAGIC      0x42465331
   BFS_MAGIC             0x1BADFACE
   CIFS_MAGIC_NUMBER     0xFF534D42
   CODA_SUPER_MAGIC      0x73757245
      COH_SUPER_MAGIC       0x012FF7B7
   CRAMFS_MAGIC          0x28cd3d45
      DEVFS_SUPER_MAGIC     0x1373
      EFS_SUPER_MAGIC       0x00414A53
   EXT_SUPER_MAGIC       0x137D
   EXT2_OLD_SUPER_MAGIC  0xEF51
   EXT2_SUPER_MAGIC      0xEF53
   EXT3_SUPER_MAGIC      0xEF53
   HFS_SUPER_MAGIC       0x4244
   HPFS_SUPER_MAGIC      0xF995E849
   HUGETLBFS_MAGIC       0x958458f6
   ISOFS_SUPER_MAGIC     0x9660
   JFFS2_SUPER_MAGIC     0x72b6
   JFS_SUPER_MAGIC       0x3153464a
      MINIX_SUPER_MAGIC     0x137F /* orig. minix */
   MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */
   MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */
      MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */
   MSDOS_SUPER_MAGIC     0x4d44
   NCP_SUPER_MAGIC       0x564c
   NFS_SUPER_MAGIC       0x6969
   NTFS_SB_MAGIC         0x5346544e
   OPENPROM_SUPER_MAGIC  0x9fa1
     PROC_SUPER_MAGIC      0x9fa0
   QNX4_SUPER_MAGIC      0x002f
      REISERFS_SUPER_MAGIC  0x52654973
   ROMFS_MAGIC           0x7275
   SMB_SUPER_MAGIC       0x517B
   SYSV2_SUPER_MAGIC     0x012FF7B6
   SYSV4_SUPER_MAGIC     0x012FF7B5
      TMPFS_MAGIC           0x01021994
   UDF_SUPER_MAGIC       0x15013346
   UFS_MAGIC             0x00011954
    USBDEVICE_SUPER_MAGIC 0x9fa2
   VXFS_SUPER_MAGIC      0xa501FCF5
   XENIX_SUPER_MAGIC     0x012FF7B4
   XFS_SUPER_MAGIC       0x58465342
   _XIAFS_SUPER_MAGIC    0x012FD16D
 
   
返回说明:  
成功执行时,返回0。失败返回-1,errno被设为以下的某个值  
 
EACCES: (statfs())文件或路径名中包含的目录不可访问
EBADF : (fstatfs()) 文件描述词无效
EFAULT: 内存地址无效
EINTR : 操作由信号中断
EIO    : 读写出错
ELOOP : (statfs())解释路径名过程中存在太多的符号连接
ENAMETOOLONG:(statfs()) 路径名太长
ENOENT:(statfs()) 文件不存在
ENOMEM: 核心内存不足
ENOSYS: 文件系统不支持调用
ENOTDIR:(statfs())路径名中当作目录的组件并非目录
EOVERFLOW:信息溢出


文章出处:http://www.diybl.com/course/6_system/linux/Linuxjs/200896/139506.html

ADRV9026初始化避坑指南:手把手调试PostMcsInit常见故障 本文详细解析了ADRV9026多片同步初始化过程中的PostMcsInit常见故障,包括时钟校准失败、JESD链路建立问题和ARM核通信异常等。通过实际项目经验,提供了硬件检查清单、软件配置要点和分层诊断方法,帮助工程师快速定位和解决问题,提升系统稳定性。 阅读详情

相关推荐

Linux新手必看:FinalShell连接不上?从检查IP到配置固定地址的完整排错指南

本文为Linux新手提供了FinalShell连接失败的完整排错指南,涵盖IP检查、SSH服务状态、防火墙配置和静态IP设置等关键步骤。通过详细的命令行操作和配置示例,帮助用户快速解决远程连接问题,提升Linux使用效率。

weixin_30675247的博客 753

statfs函数

因为要读取SD卡的大小和使用情况,所以用到statfs这个函数,功能类似于

kinbo88的专栏 1万+

必看!wechat-article-exporter:轻松批量下载公众号文章

微信搜索“”关注公众号。在信息爆炸的时代,我们每天都会接触到大量优秀的微信公众号文章。有时候,我们想要将这些精彩的内容保存下来,以便日后回顾或者分享给更多的人。然而,微信公众号并没有提供直接的批量下载功能,这给我们带来了不少困扰。今天,我要给大家分享一款非常实用的软件——wechat-article-exporter,它能够帮助我们轻松地批量下载微信公众号文章,让你不再为文章的保存而烦恼。

王乐平 技术博客 4351

statfs获得磁盘使用情况 模拟linux命令 打印比较

说明:本文主要内容为转载。 先说statfs结构: #include     /* 或者 */ int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct statfs *buf); 参数:   path: 位于需要查询信息的文件系统的文件路径名(不是设备名,是挂载点名称)。    

骆驼的专栏 1486

Python实战:5分钟搞定N-CMAPSS航空发动机数据集解析(附完整代码)

本文提供了一份针对N-CMAPSS航空发动机数据集的快速解析实战指南。通过Python的h5py和Pandas库,详细演示了如何高效读取HDF5格式文件、理解数据结构、提取关键特征(如传感器数据与剩余使用寿命RUL),并整合为可用于预测性维护分析的DataFrame,帮助研究者和工程师快速上手这一重要的工业时序数据集。

weixin_29083373的博客 278

在Cursor IDE中集成Datadog监控:自然语言查询实战指南

在云原生和微服务架构中,可观测性(Observability)已成为保障系统稳定性的核心技术支柱。其核心原理是通过日志(Logs)、指标(Metrics)和追踪(Traces)三大支柱,实时采集并呈现系统的运行状态。这项技术的价值在于,它让开发者能够透视复杂的分布式系统,快速定位性能瓶颈与故障根因。在实际的工程实践中,开发人员常常需要在编码环境与监控平台之间频繁切换,这种上下文切换严重影响了排障效率。本文聚焦于如何利用Model Context Protocol(MCP),将强大的Datadog可观测性平台

weixin_42519772的博客 348

statfs获取磁盘使用信息

statfs 结构体、statfs/fstatfs 函数

墨1024 1781

LVGL多线程编程避坑指南:从音乐播放器项目看UI与后台任务如何安全协作

本文深入探讨LVGL在多线程环境下的安全协作问题,以音乐播放器项目为例,解析UI与后台任务(如mplayer音频播放器)的典型冲突场景。提供全局互斥锁规范、任务队列异步处理等核心策略,并分享mplayer进程集成方案与进度条优化技巧,帮助开发者规避界面卡顿、内存损坏等常见问题。

weixin_42531494的博客 131

statfs获得硬盘使用情况 模拟linux命令 df

说明:本文以主要为转载内容,同时加入了我在使用过程中遇到问题对其的修正!!!!!!!!! 先说statfs结构:#include     /* 或者 */ int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct statfs *buf); 参数:   path: 位于需要查询信息的文

JINKAI 2万+

实践指南——【SPSS操作解析】线性混合效应模型在重复测量数据中的应用

本文详细解析了线性混合效应模型在重复测量数据分析中的应用,并提供了SPSS操作指南。文章阐述了该模型如何通过区分固定效应与随机效应,有效处理数据非独立性和缺失值问题,从而获得更可靠的统计推断。

oo7890的博客 550

12、探索新型高能量密度材料:FOX-7的化学进展

本文全面探讨了新型高能量密度材料FOX-7的化学进展,包括其独特的分子结构、优异的热稳定性、光谱性质以及爆炸性能。对比传统高爆炸药RDX,FOX-7展现出更低的敏感性和更高的安全性。文章还介绍了FOX-7的合成方法、异构体研究、与其结构相关的化合物以及富氮高能材料的最新发展。通过实验和计算方法,研究人员不断优化这类材料的性能,以满足军事和工业领域的高要求。

sea99的博客 350

如何使用 statfs 函数获取文件系统的剩余空间?

【代码】如何使用 statfs 函数获取文件系统的剩余空间?

luotuo28的博客 944

EMB电子机械制动系统冗余备份方案介绍

随着汽车智能化技术的快速发展,自动驾驶技术的不断升级,对车辆制动系统的可靠性和安全性提出了更高要求。根据国际汽车安全法规(如UN R13-H)的最新修订,L3级及以上自动驾驶车辆必须配备具有冗余功能的制动系统,以确保在任何单一故障发生时仍能维持部分或全部制动能力。本文重点讨论最具前瞻性的EMB(电子机械制动)系统的冗余备份设计方案

m0_59012156的博客 853

linux下获取磁盘空间大小statfs, fstatfs

在Linux环境一般可以通过df命令来获取磁盘空间大小,但是在编程过程中,命令方式不合适,这里我们通过Linux的API来获取空间大小,具体有两个函数statfs和fstafts,本篇记录这两个函数的基本用法。

chenyijun的专栏 1886

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

linux下利用statfs函数查看磁盘使用情况

  最近在学习Linux的过程中,需要查看磁盘使用情况,于是查找资料,发现statfs函数可以胜任这个任务.下面将简单介绍statfs函数及其使用。   函数如下:   int statfs(const charpath, struct statfsbuf);  参数:   path: 位于需要查询信息的文件系统的文件路径   buf: statfs结构体类型的指针变量,用于存储文件系统的相关...

qq_39515533的博客 1601

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

linux statfs命令函数介绍

statfs 主要用来获得磁盘的空间 sun 系统下为 statvfs, linux系统下为statfs   #ifdef sun #include #endif #ifdef linux #include    // 此处也可以为 #endif     中调用       下有结构       struct   st

merryyang001的专栏 2837

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

stat与statfs函数

的主要区别在于它们获取的信息对象不同,侧重于单个文件的属性,而。侧重于文件系统的属性。

luotuo28的博客 1439

深入解析Node.js中的`fs.stat`方法

fs.stat方法是Node.js中用于获取文件或文件夹状态信息的重要API。通过它,我们可以判断文件或文件夹的存在性、获取它们的详细信息以及实现文件或文件夹的遍历和监控。在实际开发中,合理使用fs.stat方法能够显著提升应用的文件处理能力。

1499

fs模块-fs.stat(path, callback)用于读取文件的状态

fs.stat(path, callback) 描述:用于读取文件的状态 /* callback有两个参数;err,stats;stats是一个fs.Stats对象;如果发生错误err.code是常见错误之一; 不建议在调用 fs.open() 、fs.readFile() 或 fs.writeFile() 之前使用 fs.stat() 检查一个文件是否存在。 作为替代,用户代码应该直...

gz-郭小敏的博客 1621

fst 共享后缀_FST源代码解读1——FST是什么

在之前研究IK的时候,看了他存储词典的格式,接触到了前缀树这种数据结构,他的好处是可以共享前缀,但是并不能共享后缀,而FST就能共享后缀,实现更加高效的存储或者查找。当然FST比前缀树添加了一个要求:必须是按照字典顺序添加的,而前缀树则没有这个要求。FST除了能存东西,判断某个东西是否存在,即起到Set的功能外,还能实现Map的功能,即存储、查找key-value。在lucene的词典表、同义词的...

weixin_33700875的博客 2137

statfs函数使用

1.功能描述编辑 查询文件系统相关的信息。 2.用法 #include /* 或者 */ int statfs(const char *path, struct statfs *buf); int fstatfs(int fd, struct statfs *buf); 3.参数 path: 需要查询信息的文件系统的文件路径名。 fd: 需要查询信息的文件系统的文件描述词

优快云NETVIP的博客 6637

嵌入式Linux fstatfs/statfs文件系统信息查询函数

English github原始仓库https://github.com/jaredtao/TaoQuick gitee镜像仓库https://gitee.com/jaredtao/TaoQuick 目录 目录 TaoQuick 徽章预览 项目 编译 发布 仓库状态 Issue 其它状态 部分Demo效果预览 启动界面 动态换皮肤 百叶窗特效 棋盘特效 全部效果预览 开发环境 功能列表 TaoQuick 安装和使用 联系作者 关注作者动态 寻找同道中人 赞助 赞助列表 TaoQuic

物联网从你我开始 1152

获取磁盘信息函数statvfs()

获取磁盘信息函数statvfs()

mankeywang的博客 3398

java statfs_linux下利用statfs函数查看磁盘使用情况

最近在学习Linux的过程中,需要查看磁盘使用情况,于是查找资料,发现statfs函数可以胜任这个任务.下面将简单介绍statfs函数及其使用。函数如下:int statfs(const charpath, struct statfsbuf);参数:path: 位于需要查询信息的文件系统的文件路径buf: statfs结构体类型的指针变量,用于存储文件系统的相关信息**struct statfs{...

weixin_30750081的博客 459

statfs系统调用及示例

statfs系统调用用于查询指定路径所在文件系统的统计信息,包括容量、空闲空间、文件系统类型等关键数据。该函数通过填充struct statfs结构体返回信息,可用于磁盘空间监控、系统工具开发等场景。主要参数为路径和接收缓冲区指针,成功返回0,失败返回-1并设置errno。结构体成员包含块大小、总/空闲块数、inode数等字段。相关函数包括statvfs(POSIX标准版)和fstatfs(通过文件描述符查询)。示例代码展示了如何获取并显示文件系统信息,帮助开发者实现磁盘空间管理功能。 (摘要共149字)

悟空看八戒烤熟了没的专栏c)4Upqt4SeVk 1088

DFS笔记

rt-thread笔记

Exxfire的博客 831
上一篇: Linux 程序设计(应用篇)
下一篇: printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - 输出格式转换
easecom
博客等级 码龄19年 11粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值