在C / C ++的Linux中获取磁盘标签

可能重复:
如何在Linux上使用C来从用户空间获取驱动器标签

如何在C / C ++编写的程序中通过文件名(/ dev / sda1,例如)获取磁盘的标签?

您可以编写与此命令相同的C或C ++代码:

find -L /dev/disk/by-label -inum $(stat -c %i /dev/sda1) -print 

也就是说, stat()您关心的设备文件,并记住它的inode编号。 遍历/ dev / disk / by-label中的所有文件,以及每个文件的stat() 。 当inode号码匹配时,匹配文件的名称就是该磁盘的标签。

如果是我,我会用C ++编写上面的算法,使用Boost.Filesystem 。