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文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值