【发布时间】:2012-07-09 00:20:54
【问题描述】:
我的应用程序应该安装并检查插入 USB 插槽的任何 pendrive 的内容。 问题是,一些用户可能使用格式化为其他文件系统而不是标准“vfat”的笔式驱动器。 标准
mount /dev/sda1 /mnt/pendrive -t auto
足以满足我的需要 - 它可以工作,并且将使用内核可读的任何文件系统。
问题是我必须在应用程序中执行此操作,并且当存在“自然”C 解决方案时,我宁愿避免调用 system() 和 shell 命令。
#include <sys/mount.h>
...
result = mount("/dev/sda1", "/mnt/pendrive", "vfat" ,0, NULL);
工作正常。但是,如果我将"vfat" 替换为"auto" 或NULL,则不会安装任何内容。
当我检查了busybox 的挂载源时,如果'auto' 或没有提供文件系统类型,它似乎在mount() 调用中将文件系统设置为NULL。但这个技巧似乎对我不起作用。我错过了什么?有没有一些相对简单的方法可以做到这一点?
【问题讨论】:
-
当您将
auto选项指定为文件系统类型时,挂载实用程序在内部尝试检测文件系统
标签: c linux filesystems mount