linux glib/gio查看系統卷設備信息(掛載點、是否可彈出)

開篇:代碼分享不寫註釋,等於耍流氓

cpu結構 :x86_64
代碼編寫:中標麒麟兆芯系統B61(rpm系)
代碼編譯成功:中標麒麟兆芯系統B61(rpm系)、優麒麟社區版19.10(deb系)
代碼運行測試:中標麒麟兆芯系統B61(rpm系)
代碼來源:開源linux系統中caja文件管理器中磁盤管理部分
代碼截圖代碼目錄

README文件

[置頂]代碼中的API可以百度"**GNOME開發者中心**"
[GNOME開發者中心](https://developer.gnome.org/index.html.zh_CN)
[置頂]代碼裏的註釋是經過考慮的,相同代碼的不同註釋是爲了增強讀者的理解
[置頂]如果有錯誤的地方,請批正

## 1、 運行須知:
​    雖然該程序不涉及圖形化界面,但是運行是仍然需要在本機上運行
​    遠程ssh運行結果會有異常
​    當然,遠程運行也不會報告程序錯誤,我反而也希望你能在遠程ssh下運行,對比下輸出結果

## 2、 項目介紹:
​    common.c 根據驅動GDrive/卷設備GVolume查看具體卷設備的信息
​    volume-connected-drives.c 查看linux系統上與驅動GDrive有關的所有卷設備
​    volume-no-drives.c  查看linux系統上與驅動無關的卷設備

## 3、 設備劃分舉例:(來自於項目中的理解)
​    驅動有關的設備:/dev/sd*設備、u盤設備
​    與驅動無關的設備:lvm分區

## 4、 項目涉及知識:
- linux libglib-2.0.so 和 libgio-2.0.so中磁盤操作的API的運用
- Makefile文件書寫(只有實際案例,具體makefile規則請自己百度學習)
- 一個makefile生成多個可執行文件
- pkg-config命令用法
- 不使用Makefile如何編譯生成二進制

5、Makefile簡單介紹:[TAB]表示一個TAB按鍵
------------------------------------------------------------------
```makefile
all:目標二進制a.out     	 //表示make根據該makefile要生成二進制a.out

a.out : 幾個.o文件       //表示生成a.out需要依賴後面這幾個.o文件
[TAB]gcc *.o -o a.out	//表示使用gcc把*.o編譯成二進制文件a.out

%.o : %.c               //表示某個.o文件需要由同名.c文件編譯生成
[TAB]gcc -c .c          //gcc使用-c生成同名.o文件

## 6、pkg-config命令簡介:
​    (1)出現原因:解決gcc 編譯時手動挨個制定 .h 和 .so的具體路徑(-I和-L選項)(2)用法實例:     
		pkg-config --cflags gio-2.0 //解決gcc -I指定gio API的頭文件路徑
		pkg-config --libs gio-2.0   //解決gcc -L指定libgio-2.0.so的庫文件路徑(3)工作原理:
​        pkg-config 命令依賴於.pc文件
​        你可以locate gio-2.0.pc後進入對應目錄查看當前linux上已安裝並可用的.pc文件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章