如何获取系统下目录的文件系统类型
最近看到一个问题,如何获取当前系统的文件类型?
这个时候就要介绍下/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
相关文章:
如何获取系统下目录的文件系统类型
最近看到一个问题,如何获取当前系统的文件类型? 这个时候就要介绍下/proc/mounts文件:这个文件以/etc/mtab文件的格式给出当前系统所安装的文件系统信息。同时也能反映出任何手工安装从而在/etc/mtab文件中没有包含的文件系统。 我们可以通…...
【Linux】GCC编译器的使用
目录 前言: 一、GCC编译过程 1.预处理: 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协议是一种网络传输协议,主要用于代理服务器和客户端之间的通信。它能够通过认证授权等多种方式,提供安全可靠的代理服务,适用于各种应用场景。 SOCKS5协议原理: 1.连接建立:客户端向代理服务器发送连接请求&…...
java面试准备17
事务的四大特性 (1)原子性:事务执行的最小单位,不可被分割,事务的原子性保证事务中的一连串动作要么都执行,要么都不执行。 (2)一致性:执行事务前后的数据保持一致&…...
ffmpeg的滤镜
FFmpeg 是一款开源的跨平台音视频处理工具,它提供了众多功能强大的滤镜用于视频/音频的加工处理。其中,滤镜(Filter)是 FFmpeg 中一个十分重要且常用的组件,它们可以实现对视频和音频的各种操作和变化,如转码、编解码、剪裁、裁剪…...
springboot项目感受03
继续上文 01.数据的部分已经完成了,此时需要考虑到前端与用户交互的部分,这里就需要网页html,服务器响应servlet。 网页的部分,html文件放在resource目录下的template文件中,servlet变成了controller包,其…...
notion插件:为你的工作流带来新生
在本文中,我们将介绍Notion的几款有助于提高生产力的插件。这些插件将加强Notion的功能,并为你的工作流程带来更多的便利。 我们特地为你准备了这本漫游指南:收录各种工具、信息和资源,携你共同探索浩瀚美丽的互联网海洋。 snackt…...
【python】Jupyter的使用(python代码编辑器)
文章目录一、Jupyter的介绍1、Jupyter是什么?2、Jupyter有什么独特之处?二、Jupyter的安装1、首先要下载python2、用pip命令下载Jupyter三、Jupyter的使用1、运行Jupyter2、简要介绍Jupyter的使用方法3、快捷键的使用四、总结一、Jupyter的介绍 1、Jupy…...
面试官:你做过什么有亮点的项目吗?
前言 面试中除了问常见的算法网络基础,和一些八股文手写体之外,经常出现的一个问题就是,你做过什么项目吗? 面试官其实是想看看你做过什么有亮点的项目, 其实大家日常做的项目都差不多,增删改查,登录注册&…...
【华为OD机试真题】猜字谜(javapython)
猜字谜 时间限制:1s空间限制:256MB 限定浯言:不限 题目描述: 小王设计了一个简单的猜字谜游戏,游戏的谜面是一个错误的单词,比如nesw,玩 家需要猜出谜底库中正确的单词。猜中的要求如下: 对于某个谜面和谜底单词,满足下面任一条件都表示猜中: 变换顺序以后一样的,…...
制作真人手办有哪些不便?怎么解决?
相信很多朋友都喜欢拍摄写真,比如孩子生日的时候,结婚纪念的时候,写真照片能留存住很多美好的记忆。 不过随着科技的发展,大家已经不能满足只靠照片来记录生活了,越来越多的人开始盯上了手办这件物品。将真人的照片和…...
网络安全行业现在好混吗,工资水平怎么样?
前段时间看到有人私信:网络安全行业现在好混吗,工资水平怎么样?今天在这里做个回答,不知你所说的“好混吗”指的是什么? 薪资高,待遇好?不加班,活儿少?不受气࿰…...
【SpringBoot】面试组合技-天羽屠龙舞,SpringBootApplication注解的作用是什么?SpringBoot怎么实现自动装配的?
SpringBoot源码下载地址:https://github.com/spring-projects/spring-boot/tags 文章目录🍟下载源码🍗环境准备🍖注解解析🍝SpringBootConfiguration注解🍛EnableAutoConfiguration注解🍤AutoC…...
2023-4-10-用Pthreads计算积分
🍿*★,*:.☆( ̄▽ ̄)/$:*.★* 🍿💥💥💥欢迎来到🤞汤姆🤞的csdn博文💥💥💥💟💟喜欢的朋友可以关注一下࿰…...
什么是js?js的基本使用
JavaScript(简称“ js”) 是一种具有函数优先的轻量级,解释型或即时编译型的编译语言虽然它是作为开发WEB页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言&a…...
自然数的拆分问题 字典序
目录 自然数的拆分问题 字典序 程序设计 程序分析 自然数的拆分问题 字典序 对于大于1的自然数N,可以拆分成若干个大于等于1的自然数之和。 Input 一个大于1的自然数N Output 所有的拆分情况.按字典序排列。 Sample Input...
软件测试——概念篇
目录 一、软件的生命周期 二、瀑布模型(Waterfall Model) 优点: 缺点: 三、螺旋模型(Spiral Model) 编辑优点: 缺点: 四、增量、迭代 区别: 五、敏捷 scrum…...
Qsort函数的应用与讲解
解释: qsort排序函数,即讲一段数组,字符串等进行有序的排列 分析: void qsort (void* base,//要排序的数组的首元素(就是数组名)size_t num, //要排序的数组元素的个数size_t size,//每个元素的字节大小&…...
蓝桥杯嵌入式第九届客观题解析
文章目录 前言一、题目1二、题目2三、题目3四、题目4五、题目5六、题目6七、题目7八、题目8九、题目910、题目10总结前言 本篇文章为大家带来第九届客观题的讲解。 一、题目1 STM32F103RBT6 微控制器是一款基于 ARM Cortex-M3 内核的单片机,它具有多个外设和总线,包括 APB1…...
多元函数的基本概念——“高等数学”
各位CSDN的uu们你们好呀,今天,小雅兰的内容是多元函数的基本概念,下面,让我们一起进入多元函数的世界吧 平面点集 多元函数的概念 多元函数的极限 多元函数的连续性 有界闭区域上多元连续函数的性质 平面点集 第一个是坐标平…...
Python3.8环境管理:用Miniconda轻松创建多个项目环境
Python3.8环境管理:用Miniconda轻松创建多个项目环境 1. 为什么需要Python环境管理 在日常开发中,我们经常会遇到这样的问题:项目A需要Python3.6和TensorFlow1.15,而项目B需要Python3.8和TensorFlow2.4。如果直接在系统上安装这…...
告别“手搓论文”焦虑:百考通AI期刊写作全流程通关秘籍
从选题到投稿,一套工具,帮你避开90%的审稿雷区 在学术研究的漫长旅途中,许多研究者都曾面临这样的困境:精心培育的 idea,扎实的实验数据,却在转化为论文、投向期刊的“最后一公里”屡屡碰壁。不是因为研究本…...
保姆级教程:在RHEL 8上彻底搞定X-Server远程连接,让xeyes不再报‘Error can‘t open display‘
深度解析RHEL 8远程X11连接:从原理到实战的全链路解决方案 当你在RHEL 8服务器上尝试通过SSH转发X11图形界面时,是否遇到过xeyes测试程序报出"Error: Cant open display"的困扰?这看似简单的错误背后,实际上隐藏着新版R…...
nRF Connect扫描功能保姆级教程:从过滤广播数据到分析RSSI信号图,手把手教你精准定位蓝牙设备
nRF Connect扫描功能实战指南:从设备筛选到信号优化的全流程解析 当你面对展会现场上百个闪烁的蓝牙设备指示灯,或是实验室里数十个同型号的传感器节点时,如何快速锁定目标设备就像大海捞针。nRF Connect作为蓝牙开发者的瑞士军刀,…...
RTX 4060笔记本也能玩转AI绘画?Nunchaku FLUX.1-dev量化版亲测体验报告
RTX 4060笔记本也能玩转AI绘画?Nunchaku FLUX.1-dev量化版亲测体验报告 1. 开箱即用的AI绘画体验 作为一名长期使用中端显卡的AI爱好者,当我第一次听说Nunchaku FLUX.1-dev量化版可以在RTX 4060笔记本上运行时,内心充满了怀疑。毕竟&#x…...
DanKoe 视频笔记:赚钱是精神性的:破除“高尚的失败者”的迷思 [特殊字符]
在本节课中,我们将要学习一种关于金钱、商业和道德的全新视角。我们将探讨为何将赚钱视为不道德是一种幻觉,以及这种观念如何阻碍你为世界创造真正的价值。 在当今世界,最糟糕的事情之一就是陷入“高尚的失败者”的思维模式。许多聪明人讨厌…...
睿尔曼超轻量仿人机械臂--控制器与末端接口深度解析
1. 睿尔曼机械臂接口设计理念解析 第一次拿到睿尔曼机械臂时,最让我惊讶的是它的极简设计——传统机械臂必备的控制柜、示教器和缠绕的线缆统统不见了,整个系统就只有一个机械臂本体。这种高度集成化的设计背后,其实隐藏着两个关键接口模块&a…...
告别Postman!用VSCode REST Client插件管理你的HTTP请求(附环境变量实战)
告别Postman!用VSCode REST Client插件管理你的HTTP请求(附环境变量实战) 在开发者的日常工作中,API调试是不可或缺的一环。传统上,Postman等独立工具占据了主导地位,但随着开发工具链的整合趋势࿰…...
基于构件的软件工程(CBSE)全面解析:从理论到实践
1 CBSE的历史背景与核心理念1.1 起源与发展历程基于构件的软件工程(Component-Based Software Engineering,CBSE)是20世纪90年代兴起的一种主流软件开发方法论。其核心思想源于软件复用的理念,即通过集成预制的独立功能单元&#…...
Phi-3-vision-128k-instruct黑马点评项目AI升级:实现菜品图片智能识别与推荐
Phi-3-vision-128k-instruct黑马点评项目AI升级:实现菜品图片智能识别与推荐 1. 引言:餐饮应用的智能化痛点 在餐饮行业数字化浪潮中,"黑马点评"作为一款广受欢迎的美食点评应用,面临着用户需求升级的挑战。传统模式下…...
