思路:

  1、使用df -h |grep mnt shell 命令查找到挂载路径信息

  本代码是将结果存入文件中,再从文件中解析出路径信息。也可使用fopen直接从管道中读取信息

2、解析出信息最后的/mnt/XXX 即为最后的路径

/*
*@brief 获取U盘挂载路径
*@param 获取的挂载路径
*@return 成功返回0.失败返回-1
*/
static int GetUDiskMountPath(char * mnt_path)
{
int fd = 0, ret = 0, rdsize = 0;
char buf[1024] = {0};
fd = open("./extendevinfo.txt", O_CREAT | O_RDWR | O_NONBLOCK | O_TRUNC, 0777);
if(fd < 0)
{
printf("open error\n");
return - 1;
}
ret = system("df -h |grep mnt >./extendevinfo.txt");
if(ret)
{
// printf("system error\n");
return - 1;
} rdsize = read(fd, buf, sizeof(buf));
// printf("buf = %s\n", buf);
if(rdsize < 2)
{
printf("read error\n");
return - 1;
} ret = analysis_monut_info(buf, mnt_path); close(fd);
return ret;
} /*
*@brief 从buf中返回最后一组为/mnt/exUDISK为挂载路径
eg:/dev/sda 14.6G 9.6G 5.0G 66% /mnt/exUDISK
*@param 获取的挂载路径
*@return 成功返回0.失败返回-1
*/
static int analysis_monut_info(char *buf, char *path)
{
char *info = buf;
char value[128] = {0};
int ret = 1;
// printf("@buf %s", buf);
while(0 != ret)
{
sprintf(path, "%s", value);
memset(value, 0, sizeof(value));
ret = get_info_value(&info, value);
}
return ret;
} /*
*@brief 从buf中返回用空格和换行为分隔符的部分。并向前移动地址位置。
*@param info 查找的源,value 返回的字符串
*@return 成功返回0.失败返回-1
*/
static int get_info_value(char **info, char *value)
{
char *vernier = 0;
int i = 0;
vernier = *info;
while((*vernier == ' ') || (*vernier == '\n'))
{
vernier++;
}
for(i = 0; *vernier != 32 && *vernier != '\n' && *vernier != '\0' && i < 64;i++)
{
value[i] = *vernier;
vernier++;
}
if(*vernier == '\0')
{
return 0;
}
*info = vernier;
return - 1;
}

Linux c 检测U盘挂载路径方法的更多相关文章

  1. LINUX下的U盘挂载

    linux下如果没有图形界面的情况下就要我们自己熟悉命令来挂载U盘,下面给大家详细描述下U盘的挂载过程. 1. 插入U盘 2. #sudo fdisk –l 查看所挂载盘符名称如下图,假设盘符名称为s ...

  2. Linux 查看进程运行的完整路径方法

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等. 这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一 ...

  3. Linux查看进程运行的完整路径方法

    通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个 ...

  4. 将u盘的文件复制到虚拟机上的linux系统上面—》文件挂载(文字+图解)

    虚拟机中操作系统.CentOs(无图形界面) 没有图形界面的linux,我也没有配置网络,现在需要把文件复制到linux系统上面,我这里就使用了u盘挂载的方式,获得了U盘中的文件. 1.VMware中 ...

  5. Kali Linux下破解WIFI密码挂载usb无线网卡的方法

    Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12    来源:服务器之家    投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...

  6. 截取linux文件存储路径方法

    1.截取linux文件存储路径方法 package com.tydic.eshop.action.freemarker; public class dddd { public static void ...

  7. linux(CentOS)磁盘挂载数据盘

    linux(CentOS)磁盘挂载数据盘:第一步:查看是否存在需要挂载的磁盘: sudo fdisk -l 第二步:为需要挂载的磁盘创建分区: sudo fdisk /dev/vdb 执行中:依次选择 ...

  8. linux 从百度网盘下载文件的方法

    linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...

  9. 最小LINUX系统下U盘的挂载及卸载

    U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系 ...

  10. Linux系列(21) - 光盘、U盘挂载

    挂载光盘 mount命令.umount命令 step-1 建立挂载点 原理:相当于建立盘符,建个目录读取光盘内容 命令:[root@localhost ~]# mkdir /mnt/cdrom/ 备注 ...

随机推荐

  1. 是什么让.NET7的Min和Max方法性能暴增了45倍?

    简介 在之前的一篇文章.NET性能系列文章一:.NET7的性能改进中我们聊到Linq中的Min()和Max()方法.NET7比.NET6有高达45倍的性能提升,当时Benchmark代码和结果如下所示 ...

  2. 一键部署haproxy脚本

    HAPROXY_VERSION=2.6.6 HAPROXY_FILE=haproxy-${HAPROXY_VERSION}.tar.gz #HAPROXY_FILE=haproxy-2.2.12.ta ...

  3. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南)-L Bit Sequence

    题意 给你两个数l,m,大小为m的数组a,求[0,l]之间满足以下条件的数x的个数: 对于任何i输入[0,m-1],f(x+i)%2=a[i]:f(k):代表k在二进制下1的个数 m的范围<=1 ...

  4. JS数据结构与算法-队列结构

    队列结构 一.认识队列 受限的线性结构: 我们已经学习了一种受限的线性结构:栈结构. 并且已经知道这种受限的数据结构对于解决某些特定问题,会有特别的 效果. 下面,我们再来学习另外一个受限的数据结构: ...

  5. python进阶(26)collections标准库

    前言 这个模块实现了特定目标的容器,以提供Python标准内建容器dict ,list ,set , 和tuple 的替代选择. 这个模块提供了以下几个函数 函数 作用 namedtuple() 创建 ...

  6. C语言嵌套for循环实现冒泡排序

    使用嵌套for循环实现冒泡排序的一个函数. #include<stdio.h> /** * 介绍: * 使用嵌套for循环实现冒泡排序,由小到大(上小下大). * 参数: * sum[]: ...

  7. 使用gitee创建个人的图床

    使用gitee创建个人的图床 1.如果还没有gitee(码云)账号,可以注册一个,注册后登陆进入个人中心 2.点击新建仓库 3.进入创建页面 创建成功 5.在本地电脑创建一个文件夹,专门用来放置要上传 ...

  8. phpmyadmin 数据库导出数据到excel(图文版)

    查询到想要的数据后,点击上方或下方的"导出"按钮 格式选择"CSV for MS Excel" 如果快速导出的数据乱码,可以选择"导出方式" ...

  9. Go语言核心36讲39

    在上一篇文章中,我介绍了Go语言与Unicode编码规范.UTF-8编码格式的渊源及运用. Go语言不但拥有可以独立代表Unicode字符的类型rune,而且还有可以对字符串值进行Unicode字符拆 ...

  10. (工具) 性能测试基准软件 lmBench (待补充)

    1. lmBench 介绍 Lmbench是一套简易,可移植的,符合ANSI/C标准为UNIX/POSIX而制定的微型测评工具.一般来说,它衡量两个关键特征:反应时间和带宽.Lmbench旨在使系统开 ...