資源簡介
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
- 上一篇:面向對象的圖書館管理系統需求分析說明書
- 下一篇:基于51的點陣顯示系統帶仿真圖
評論
共有 條評論