当前位置: 首页 > news >正文

如何获取系统下目录的文件系统类型

最近看到一个问题,如何获取当前系统的文件类型?

这个时候就要介绍下/proc/mounts文件:这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。同时也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。

我们可以通过cat /proc/mounts查看挂载文件系统的状态。

root@firefly:~# cat /proc/mounts
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=1960196k,nr_inodes=490049,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=393192k,mode=755 0 0
/dev/mmcblk1p7 /root-ro ext4 ro,relatime,data=ordered 0 0
/dev/mmcblk1p8 /userdata ext4 rw,relatime,data=ordered 0 0
overlayroot / overlay rw,relatime,lowerdir=/root-ro,upperdir=/userdata/rootfs_overlay,workdir=/userdata/rootfs_overlay-workdir/_ 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0

mounts文件包含6列

  • Device mount的设备
  • Mount Point 挂载点,也就是挂载的路径
  • File System Type 文件系统类型,如ext4、xfs等
  • Options 挂载选项,包括读写权限等参数
  • 无用内容,保持内容和**/etc/fstab**格式一致
  • 无用内容,保持内容和**/etc/fstab**格式一致

下面写个程序提取下设备名,挂载目录,文件系统类型等参数。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MOUNTS_INFO        "/proc/mounts"typedef struct
{char devName[32];char dirName[16];char fsType[16];char authority[16];
}PartitionInfo;int getPartitionInfo(char *pPartitionName,PartitionInfo *pPartitionInfo)
{FILE *fp = NULL;char str[128] = {0};char *p = NULL,*q = NULL,*pTmpStr = NULL;int i = 0;fp = fopen(MOUNTS_INFO, "r");if (fp < 0){printf("open %s failed\n",MOUNTS_INFO);return -1;}while (NULL != fgets(str,sizeof(str),fp)){p = strstr(str,pPartitionName);if (NULL != p){for(i = 0;i < 4; i++){if (0 == i){q = strtok_r(str," ",&pTmpStr);strcpy(pPartitionInfo->devName,q);}if (1 == i){q = strtok_r(p," ",&pTmpStr);strcpy(pPartitionInfo->dirName,q); }  if (2 == i){q = strtok_r(p," ",&pTmpStr);strcpy(pPartitionInfo->fsType,q); }  if (3 == i){q = strtok_r(p,",",&pTmpStr);strcpy(pPartitionInfo->authority,q);}   p = pTmpStr;                         }        }}fclose(fp);return 0;
}
int main()
{int status = -1;PartitionInfo partitionInfo;memset(&partitionInfo,0,sizeof(PartitionInfo));status = getPartitionInfo("/dev/pts",&partitionInfo);if(status < 0){printf("get  partition info failed\n");return -1;}printf("devName:%s\n",partitionInfo.devName);printf("dirName:%s\n",partitionInfo.dirName);printf("fsType:%s\n",partitionInfo.fsType);printf("authority:%s\n",partitionInfo.authority);return 0}

运行结果

root@firefly:~/mnt# ./get_fsType 
devName:devpts
dirName:/dev/pts
fsType:devpts
authority:rw

相关文章:

如何获取系统下目录的文件系统类型

最近看到一个问题&#xff0c;如何获取当前系统的文件类型&#xff1f; 这个时候就要介绍下/proc/mounts文件&#xff1a;这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。同时也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。 我们可以通…...

【Linux】GCC编译器的使用

目录 前言&#xff1a; 一、GCC编译过程 1.预处理&#xff1a; 2.编译 3.汇编 4.链接 二、制作、使用动态库和静态库 1.静态库 2.动态库 三、好用的选项 1.gcc -E main.c 2.gcc -E -dM main.c > 1.txt 3.gcc -Wp,-MD,abc.dep -c -o main.o main.c 4.echo main(){}| …...

浅谈一下socks5协议原理详解与应用场景分析

SOCKS5协议是一种网络传输协议&#xff0c;主要用于代理服务器和客户端之间的通信。它能够通过认证授权等多种方式&#xff0c;提供安全可靠的代理服务&#xff0c;适用于各种应用场景。 SOCKS5协议原理&#xff1a; 1.连接建立&#xff1a;客户端向代理服务器发送连接请求&…...

java面试准备17

事务的四大特性 &#xff08;1&#xff09;原子性&#xff1a;事务执行的最小单位&#xff0c;不可被分割&#xff0c;事务的原子性保证事务中的一连串动作要么都执行&#xff0c;要么都不执行。 &#xff08;2&#xff09;一致性&#xff1a;执行事务前后的数据保持一致&…...

ffmpeg的滤镜

FFmpeg 是一款开源的跨平台音视频处理工具&#xff0c;它提供了众多功能强大的滤镜用于视频/音频的加工处理。其中&#xff0c;滤镜(Filter)是 FFmpeg 中一个十分重要且常用的组件&#xff0c;它们可以实现对视频和音频的各种操作和变化&#xff0c;如转码、编解码、剪裁、裁剪…...

springboot项目感受03

继续上文 01.数据的部分已经完成了&#xff0c;此时需要考虑到前端与用户交互的部分&#xff0c;这里就需要网页html&#xff0c;服务器响应servlet。 网页的部分&#xff0c;html文件放在resource目录下的template文件中&#xff0c;servlet变成了controller包&#xff0c;其…...

notion插件:为你的工作流带来新生

在本文中&#xff0c;我们将介绍Notion的几款有助于提高生产力的插件。这些插件将加强Notion的功能&#xff0c;并为你的工作流程带来更多的便利。 我们特地为你准备了这本漫游指南&#xff1a;收录各种工具、信息和资源&#xff0c;携你共同探索浩瀚美丽的互联网海洋。 snackt…...

【python】Jupyter的使用(python代码编辑器)

文章目录一、Jupyter的介绍1、Jupyter是什么&#xff1f;2、Jupyter有什么独特之处&#xff1f;二、Jupyter的安装1、首先要下载python2、用pip命令下载Jupyter三、Jupyter的使用1、运行Jupyter2、简要介绍Jupyter的使用方法3、快捷键的使用四、总结一、Jupyter的介绍 1、Jupy…...

面试官:你做过什么有亮点的项目吗?

前言 面试中除了问常见的算法网络基础&#xff0c;和一些八股文手写体之外&#xff0c;经常出现的一个问题就是&#xff0c;你做过什么项目吗&#xff1f; 面试官其实是想看看你做过什么有亮点的项目, 其实大家日常做的项目都差不多&#xff0c;增删改查&#xff0c;登录注册&…...

【华为OD机试真题】猜字谜(javapython)

猜字谜 时间限制:1s空间限制:256MB 限定浯言:不限 题目描述: 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…...

制作真人手办有哪些不便?怎么解决?

相信很多朋友都喜欢拍摄写真&#xff0c;比如孩子生日的时候&#xff0c;结婚纪念的时候&#xff0c;写真照片能留存住很多美好的记忆。 不过随着科技的发展&#xff0c;大家已经不能满足只靠照片来记录生活了&#xff0c;越来越多的人开始盯上了手办这件物品。将真人的照片和…...

网络安全行业现在好混吗,工资水平怎么样?

前段时间看到有人私信&#xff1a;网络安全行业现在好混吗&#xff0c;工资水平怎么样&#xff1f;今天在这里做个回答&#xff0c;不知你所说的“好混吗”指的是什么&#xff1f; 薪资高&#xff0c;待遇好&#xff1f;不加班&#xff0c;活儿少&#xff1f;不受气&#xff0…...

【SpringBoot】面试组合技-天羽屠龙舞,SpringBootApplication注解的作用是什么?SpringBoot怎么实现自动装配的?

SpringBoot源码下载地址&#xff1a;https://github.com/spring-projects/spring-boot/tags 文章目录&#x1f35f;下载源码&#x1f357;环境准备&#x1f356;注解解析&#x1f35d;SpringBootConfiguration注解&#x1f35b;EnableAutoConfiguration注解&#x1f364;AutoC…...

2023-4-10-用Pthreads计算积分

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f;&#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xff0…...

什么是js?js的基本使用

JavaScript&#xff08;简称“ js”&#xff09; 是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编译语言虽然它是作为开发WEB页面的脚本语言而出名&#xff0c;但是它也被用到了很多非浏览器环境中&#xff0c;JavaScript 基于原型编程、多范式的动态脚本语言&a…...

自然数的拆分问题 字典序

目录 自然数的拆分问题 字典序 程序设计 程序分析 自然数的拆分问题 字典序 对于大于1的自然数N,可以拆分成若干个大于等于1的自然数之和。 Input 一个大于1的自然数N Output 所有的拆分情况.按字典序排列。 Sample Input...

软件测试——概念篇

目录 一、软件的生命周期 二、瀑布模型&#xff08;Waterfall Model&#xff09; 优点&#xff1a; 缺点&#xff1a; 三、螺旋模型&#xff08;Spiral Model&#xff09; ​编辑优点&#xff1a; 缺点&#xff1a; 四、增量、迭代 区别&#xff1a; 五、敏捷 scrum…...

Qsort函数的应用与讲解

解释&#xff1a; qsort排序函数&#xff0c;即讲一段数组&#xff0c;字符串等进行有序的排列 分析&#xff1a; void qsort (void* base,//要排序的数组的首元素&#xff08;就是数组名&#xff09;size_t num, //要排序的数组元素的个数size_t size,//每个元素的字节大小&…...

蓝桥杯嵌入式第九届客观题解析

文章目录 前言一、题目1二、题目2三、题目3四、题目4五、题目5六、题目6七、题目7八、题目8九、题目910、题目10总结前言 本篇文章为大家带来第九届客观题的讲解。 一、题目1 STM32F103RBT6 微控制器是一款基于 ARM Cortex-M3 内核的单片机,它具有多个外设和总线,包括 APB1…...

多元函数的基本概念——“高等数学”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容是多元函数的基本概念&#xff0c;下面&#xff0c;让我们一起进入多元函数的世界吧 平面点集 多元函数的概念 多元函数的极限 多元函数的连续性 有界闭区域上多元连续函数的性质 平面点集 第一个是坐标平…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

分布式增量爬虫实现方案

之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面&#xff0c;避免重复抓取&#xff0c;以节省资源和时间。 在分布式环境下&#xff0c;增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路&#xff1a;将增量判…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...