实搜石家庄网站建设小程序seo任务
系统:VM Ubuntu
实现Linux系统下通过输入指定路径查看文件系统类型,MSDOS_SUPER_MAGIC,NTFS_SUPER_MAGIC和EXT4_SUPER_MAGIC这些宏定义并不是在sys/mount.h中定义的,它们实际上是在linux/magic.h头文件中定义的。不同系统下宏定义可能不一样,可以直接通过数值查看,比如:
if (fs.f_type == 0x4d44) {fstype = "FAT";}
输入指定路径
代码如下:
#include <stdio.h>
#include <sys/vfs.h>
#include <linux/magic.h>int main(int argc,char *argv[])
{struct statfs fs;//const char *path = "/mnt/usb"; // 替换为你实际的U盘挂载路径const char *path = argv[1];printf("path: %s\n",argv[1]);if (statfs(path, &fs) == -1) {perror("Failed to statfs");return 1;}const char *fstype;if (fs.f_type == MSDOS_SUPER_MAGIC) {fstype = "FAT";} else if (fs.f_type == AFS_FS_MAGIC) {fstype = "NTFS";} else if (fs.f_type == EXT4_SUPER_MAGIC) {fstype = "ext4";} else {fstype = "Unknown";}printf("File system type: %s\n", fstype);return 0;
}
生成执行文件:
gcc -o get_fs_type get_fs_type.c