利用/proc/mounts检查已经被系统挂载的设备
1、介绍/proc/mounts
如何利用/proc/mounts知道已经挂载上的设备呢,我们先来看看/proc/mounts都有啥东西

解释一下,第一列是设备路径,比如说/dev/sda1,第二列是挂载点(即设备挂载到的目录),第三列是以什么文件系统挂载。
2、编代码读取前3列
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int read_proc_mounts()
{
FILE IT之家fp = NULL;
int i = 0;
int nSscanfNum = 0;
char chDevicePath[255] = {0};
char chMountPath[255] = {0};
char chFsTypeName[255]= {0};
char chBuffer[1024] = {0};
fp = fopen("/proc/mounts","r");
if (NULL == fp)
{
printf("\n read /proc/mounts error! \n");
return -1;
}
while(1)
{
memset(chBuffer,0,sizeof(chBuffer));
if(NULL == fgets(chBuffer,sizeof(chBuffer),fp))
{
break;
}
memset(chDevicePath,0,sizeof(chDevicePath));
memset(chMountPath,0,sizeof(chMountPath));
memset(chFsTypeName,0,sizeof(chFsTypeName));
nSscanfNum = sscanf(chBuffer ,"%[^' '] %[^' '] %[^' ']",chDevicePath,chMountPath,chFsTypeName );
if(3 != nSscanfNum)
{
continue;
}
printf("\nchDevicePath[%s],chMountPath[%s],chFstypeName[%s]\n",chDevicePath,chMountPath,chFsTypeName);
}
fclose(fp);
return 0;
}
int main()
{
read_proc_mounts();
return 0;
}
3、运行结果
-bash-3.2$
-bash-3.2$ gcc test_proc_mounts.c
-bash-3.2$
-bash-3.2$
-bash-3.2$ ./a.out
chDevicePath[rootfs],chMountPath[/],chFstypeName[rootfs]
chDevicePath[/dev/root],chMountPath[/],chFstypeName[ext3]
chDevicePath[/dev],chMountPath[/dev],chFstypeName[tmpfs]
chDevicePath[/proc],chMountPath[/proc],chFstypeName[proc]
chDevicePath[/sys],chMountPath[/sys],chFstypeName[sysfs]
chDevicePath[/proc/bus/usb],chMountPath[/proc/bus/usb],chFstypeName[usbfs]
chDevicePath[devpts],chMountPath[/dev/pts],chFstypeName[devpts]
chDevicePath[/dev/sda6],chMountPath[/home],chFstypeName[ext3]
chDevicePath[/dev/sda5],chMountPath[/var],chFstypeName[ext3]
chDevicePath[/dev/sda1],chMountPath[/boot],chFstypeName[ext3]
chDevicePath[tmpfs],chMountPath[/dev/shm],chFstypeName[tmpfs]
chDevicePath[/dev/sdb1],chMountPath[/homesec],chFstypeName[ext4]
chDevicePath[/dev/sda6],chMountPath[/home_mount],chFstypeName[ext3]
chDevicePath[/dev/sdb1],chMountPath[/homesec_mount],chFstypeName[ext4]
chDevicePath[none],chMountPath[/proc/sys/fs/binfmt_misc],chFstypeName[binfmt_misc]
chDevicePath[sunrpc],chMountPath[/var/lib/nfs/rpc_pipefs],chFstypeName[rpc_pipefs]
chDevicePath[nfsd],chMountPath[/proc/fs/nfsd],chFstypeName[nfsd]
chDevicePath[/etc/auto.misc],chMountPath[/misc],chFstypeName[autofs]
chDevicePath[-hosts],chMountPath[/net],chFstypeName[autofs]
chDevicePath[/root],chMountPath[/root],chFstypeName[esn_cfs]
chDevicePath[/home],chMountPath[/home],chFstypeName[esn_cfs]
chDevicePath[/homesec],chMountPath[/homesec],chFstypeName[esn_cfs]
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/kaifa/8403.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
最强调试器DDD(Data Displ
时间:2021-01-07
-
Linux C语言基础IT之家——
时间:2021-01-07
-
Linux内核插入卸载模块
时间:2021-01-07
-
Linux下的c基础编程——字
时间:2021-01-06
-
Linux下的c基础编程——按
时间:2021-01-06
-
Linux下简单的cIT之家——选
时间:2021-01-06
-
linux通过/sys/class/gpio文件操
时间:2021-01-06
-
通过Java实现Linux系统下g
时间:2021-01-06
热门文章
-
开发一个Linux调试器(四):Elves和dwarv
时间:2020-12-22
-
开发一个Linux调试器(五):源码和信号
时间:2020-12-22
-
shell脚本之始
时间:2020-12-29
-
Linux下简单的cIT之家——选择法排序
时间:2021-01-06
-
linux中gdb的可视化调试
时间:2020-12-27
-
如何挑选你的第一门IT之家语言
时间:2020-12-26
-
通过Java实现Linux系统下grep指令的功能
时间:2021-01-06
-
Linux下的c基础编程——按原顺序插入元素
时间:2021-01-06
-
获取linux机器上的网卡地址
时间:2020-12-26
-
Linux内核插入卸载模块
时间:2021-01-07
