Linux c 检测U盘挂载路径方法
思路:
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盘挂载路径方法的更多相关文章
- LINUX下的U盘挂载
linux下如果没有图形界面的情况下就要我们自己熟悉命令来挂载U盘,下面给大家详细描述下U盘的挂载过程. 1. 插入U盘 2. #sudo fdisk –l 查看所挂载盘符名称如下图,假设盘符名称为s ...
- Linux 查看进程运行的完整路径方法
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等. 这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一 ...
- Linux查看进程运行的完整路径方法
通过ps及top命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等.这时,我们需要通过以下的方法来查看进程的详细信息: Linux在启动一个进程时,系统会在/proc下创建一个 ...
- 将u盘的文件复制到虚拟机上的linux系统上面—》文件挂载(文字+图解)
虚拟机中操作系统.CentOs(无图形界面) 没有图形界面的linux,我也没有配置网络,现在需要把文件复制到linux系统上面,我这里就使用了u盘挂载的方式,获得了U盘中的文件. 1.VMware中 ...
- Kali Linux下破解WIFI密码挂载usb无线网卡的方法
Kali Linux下破解WIFI密码挂载usb无线网卡的方法 时间:2014-10-12 来源:服务器之家 投稿:root 首先我要说的是,wifi密码的破解不是想象中的那么容易,目前还 ...
- 截取linux文件存储路径方法
1.截取linux文件存储路径方法 package com.tydic.eshop.action.freemarker; public class dddd { public static void ...
- linux(CentOS)磁盘挂载数据盘
linux(CentOS)磁盘挂载数据盘:第一步:查看是否存在需要挂载的磁盘: sudo fdisk -l 第二步:为需要挂载的磁盘创建分区: sudo fdisk /dev/vdb 执行中:依次选择 ...
- linux 从百度网盘下载文件的方法
linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...
- 最小LINUX系统下U盘的挂载及卸载
U盘挂载命令U盘插入的时候会显示启动信息,启动信息中sda: sda1指U盘的设备名为sda1dev设备目录下有一个sda1设备文件,此设备文件就是我们插入的U盘,我们将这个设备文件挂载到Linux系 ...
- Linux系列(21) - 光盘、U盘挂载
挂载光盘 mount命令.umount命令 step-1 建立挂载点 原理:相当于建立盘符,建个目录读取光盘内容 命令:[root@localhost ~]# mkdir /mnt/cdrom/ 备注 ...
随机推荐
- 三、Go环境安装
3.1.Go编译器的下载 官网:https://golang.google.cn/go中文网:https://studygolang.com/dl 3.2.安装 for Mac 3.2.1. mac ...
- VBA---文件操作
Text文件操作 Workbooks.OpenText() 载入一个文本文档,并将其作为包含单个工作表的新工作簿进行分列处理. 语法: 表达式.OpenText(Filename,StartRow, ...
- 写一个shell,自动执行jmeter测试脚本
贡献一个自己写的shell脚本,很简单,但又可以高效率的自动执行jmeter压测脚本. #!/bin/bash #author:zhangyl #version:V1 #该脚本放置于压测脚本的上一层目 ...
- 1.nginx学习
我们平时访问的网络网站就是WEB网络服务,允许用户通过浏览器访问互联网中的各种资源服务 WEB服务器会通过HTTP或者HTTPS的方式将请求内容传递给客户端 目前常见的WEB服务有IIS, Nginx ...
- 元数据Metadata到底有什么用
什么是元数据 元数据Metadata很简单,是关于数据的数据.这就意味着是数据的描述和上下文.他有助于组织和发现理解数据. 举例: 1张照片中除了照片本身还是,照片的时间日期,大小,格式相机设置,地理 ...
- Goland环境中Go module配置
[现象] 从go vendor切换到go module之后,import包解析有问题.如下所示: 对应的go modules也没解析出来 [原因] 有两点原因: goland中go module配置存 ...
- ROS应用层通信协议解析
参考:http://wiki.ros.org/ROS/Master_API http://wiki.ros.org/ROS/Connection Header 说明 ROS本质上就是一个松耦合的通信框 ...
- kotlin的suspend对比csharp的async&await
协程的出现大大降低了异步编程的复杂度,可以让我们像写同步代码一样去写异步代码,如果没有它,那么很多异步的代码都是需要靠回调函数来一层层嵌套,这个在我之前的一篇有介绍 rxjava回调地狱-kotlin ...
- JSP利用AJAX实现页面即时校验验证码
在JSP页面实现验证码校验文章中当时是使用的Servlet类来进行的验证码校验,但是这种方式并不能即时校验,在正常情况下都是直接在用户输入之后就进行校验,这样对用户来说很方便的. AJAX 即&quo ...
- 介绍一款高性能分布式MQTT Broker(带web)
SMQTTX介绍 SMQTTX是基于SMQTT的一次重大技术升级,基于Java开发的分布式MQTT集群,是一款高性能,高吞吐量,并且可以完成二次开发的优秀的开源MQTT broker,主要采用技术栈: ...