LINUX系統識別外設(基於C的自動讀寫) 一

2021-08-28 04:13:32 字數 2307 閱讀 5708

最近在開發基於量子隨機數的離線金鑰充值系統,主要功能是對外設進行充值隨機數金鑰。軟體部署在centos7系統上,因此需要軟體自動識別系統是否有外設通過usb口接入裝置。

在linux系統中,外設連入系統是以檔案形式存在的,裝置檔案存放在linux系統的/dev下面。外設有很多種:軟盤、u盤、光碟機、磁碟等。它們被系統自動識別和命名,命名規則為 主裝置號(裝置型別)+次裝置號(具體裝置);

例如:軟盤的裝置檔案為/dev/fdx。主裝置號為fd(floppydosk),次裝置號x為裝置對應的編碼;

u盤的裝置檔案為/dev/sdax或者sdbx或者sdcx...。主裝置號為sda(scsi disk),次裝置號x為裝置對應的編碼;

ide光碟機的裝置檔案為/dev/hadx。主裝置號為had(?),次裝置號x為裝置對應的編碼;

scsi光碟機的裝置檔案為/dev/srx。主裝置號為srx(?),次裝置號x為裝置對應的編碼;

磁碟的裝置檔案為/dev/stx。主裝置號為stx(scsi tape),次裝置號x為裝置對應的編碼;

例項:識別裝置檔案——u盤

環境:win10+vmware workstation 12 pro+ubuntu 14.04.5

1、由於/mnt目錄下東西太多(眼都花了),應此我們先將插入u盤前的/mnt下的裝置檔案進行記錄

執行ls /dev>before.txt

2、插入u盤後,我們對/mnt下的裝置檔案進行記錄

執行ls /dev>now.txt

3、使用wincmp比較二個檔案的區別找到多出的裝置檔案即為u盤檔案

4、可以看到插入u盤後多出三個檔案sdb、sdb1、sg2;具體哪個裝置檔案為u盤,我們需要檢視詳細資訊

執行modprobe usb-storage載入usb模組

執行 fdisk -l檢視usb裝置資訊

5、可以看到sdb1為u盤的裝置檔案,blocks為13.4g ,system為hpfs或者ntfs或者exfat

當我們識別到外設檔案,我們便要將外設掛載到指定目錄下,通過該目錄便可以正常訪問外設了。linux下的掛載命令如下:

mount -t 檔案系統型別 裝置名 掛載點

對於不同的外部裝置,linux提供了不同的檔案型別。常見的型別如下:

msdos      dos檔案系統型別

vfat          支援長檔名的dos分割槽檔案系統型別,也可以理解為windows檔案系統型別

iso9660    光碟格式檔案系統型別

ext2/ext3 linux下檔案系統型別

裝置名就是對應的裝置檔案,掛載點就是在linux下指定的掛載目錄,將裝置指定到這個掛載目錄後,以後訪問這個掛載目錄,就相當於訪問了這個裝置了。linux中有乙個/mnt目錄,專門用作掛載點(mount point)目錄。如果安裝的系統中有軟盤和光碟機,那麼系統缺省會在/mnt下建立/mnt/floppy(用於軟碟機的掛載目錄)以及/mnt/cdrom(用於光碟機的掛載目錄)資料夾。因此建議在實際應用中,將裝置都裝載到此目錄的子目錄中。

例項:掛載裝置檔案——u盤

1、檢視外設掛載情況

執行df -h

2、部分linux裝置會自動掛載u盤,例如上圖/dev/sdb1為u盤的裝置檔案,linux系統自動掛載到/media/wang/869538952掛載點;我們便可以通過/media/wang/869538952資料夾對u盤進行讀寫操作;

3、在某些場景下,使用者需要自定義掛載點,應此可以對原有的掛載點進行解除安裝,然後重新掛載裝置;

執行:umount /media/wang/869538952解除安裝原有掛載點

mkdir /mnt/usb建立自定義掛載點

mount  /dev/sdb1   /mnt/usb掛載裝置到自定義掛載點上

基於MATLAB GUI的指紋識別系統

指紋識別的第一步是指紋圖像的獲取,目前已經有多種指紋圖像的獲取方式,主要有光學指紋採集技術 電容式感測器指紋採集 溫度感測指紋獲取技術 超聲波指紋採集技術 電磁波指紋採集技術,獲得影象後進行預處理加工,要實現影象的灰度變換 分割 均衡化 增強 細化等預處理步驟。首先要把指紋從整個圖案上分割出來,背景...

基於語音的情緒識別系統(Python)

源 連線 emotion recognition using speech 原鏈結是給的原始的版本,我在 win10 上執行會報錯,比如下邊的的 pyauto 無法安裝的問題。我已經將相應的安裝包上傳到 gitee 上了。碼雲位址 語音情緒識別 在 emotion recognition using...

基於Linux系統的C語言歌詞解析

該歌詞解析器是在ubuntu系統下實現的,可以實現歌詞的滾屏實時顯示 進度條及時間顯示 以及字元畫的顯示。專案截圖 第一步.將歌詞檔案讀取到堆區空間 一次性將檔案內容讀取到堆區空間 char get lrc memory char name,int num fseek fp,0,2 將流指標定位在檔...