资源简介

linux下实现自动查找U盘,识别U盘,判断是否已经挂载(如果没有则自动挂载),然后在U盘创建文件,最后卸载U盘。 纯C代码,全部源代码,可以在fedora等桌面linux上使用,也可以在嵌入式linux下使用,测试通过。 基本原理是: 1)打开 /proc/scsi/usb-storage 目录,如果能打开说明有U盘或者移动硬盘接入,否则没有 如果有则获取移动设备的设备号,就是文件名,打开这个文件名从里面可以提前设备的序列号 2)根据设备号,在/sys/class/scsi_device/目录去找,找以该设备号开头的文件夹 这个时候需要遍历这些文件夹了 3)遍历过程: 打开其下的device

资源截图

代码片段和文件信息

#include   
#include   
#include   
#include   
#include   
#include   
#include   

#define SCSI_DEV_DIR “/sys/class/scsi_device“

int check_sd_sub_dir(char *dirnamechar *diskname)
{
char *seek_sd = NULL;
DIR *dirp = NULL;  
struct dirent *direntp = NULL;  
int count = 0;

if ((dirp = opendir(dirname)) == NULL) {  
        printf(“sub funciton Open Directory %s Error:%s\n“  
                dirname strerror(errno));  
        return -1; //no block dir not usb disk device
  }
  //可能存在多个分区,取第一个吧
  while ((direntp = readdir(dirp)) != NULL){  
       if (strcmp(“.“ direntp->d_name) == 0 ||
                    strcmp(“..“ direntp->d_name) == 0)
        {
            continue;
        }

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        127  2019-10-25 10:54  make.txt

     文件       2560  2019-10-25 10:49  mount.c

     文件       2646  2019-10-25 10:52  readSn.c

     文件       3968  2019-08-29 09:37  getUdiskName.c

     文件       1885  2019-10-25 10:51  main.c

----------- ---------  ---------- -----  ----

                11186                    5


评论

共有 条评论