关于获取类似/dev/hda1设备的文件系统的类型
请问有现成的linux C函数可以用
不想自己去读分区表
也不想调用fdisk命令
------解决方案--------------------应该没有
------解决方案--------------------cat /proc/mounts
------解决方案--------------------getmntent()调用,返回一个struct mntent结构。下面是一个代码例子
#include <stdio.h>
#include <mntent.h>
int main(int argc, char *argv[])
{
FILE *fp = NULL;
struct mntent *mnt = NULL;
fp = setmntent("/etc/mtab", "r");
if (fp == NULL) {
return -1;
}
while ((mnt = getmntent(fp))) {
printf("name: %s, type: %s, mount dir: %s, opts: %s\n",
mnt->mnt_fsname, mnt->mnt_type, mnt->mnt_dir, mnt->mnt_opts);
}
endmntent(fp);
return 0;
}
------解决方案--------------------mount里面好像就是一个一个试的
------解决方案--------------------你od -c /dev/hda1看一下设备的头100-200个字节
fat32类型的类型标志在第82-86这5个字节里.
ntfs 的类型标志在第3,4,5,6这4个字节里.
其它类型的没找到在那,仔细找下看看能否找到.