我的应用程序可以挂载并检查插入USB插槽的任何U盘的内容。 问题是,一些用户可能使用格式化为标准“vfat”以外的其他文件系统的U盘。 标准
mount /dev/sda1 /mnt/pendrive -t auto
我需要的只是一个能够正常工作并且可以使用内核可读取的任何文件系统。问题是,我必须在应用程序内部完成它,我宁愿避免调用system()
和shell命令,而寻求“自然”C语言解决方案。
#include <sys/mount.h>
...
result = mount("/dev/sda1", "/mnt/pendrive", "vfat" ,0, NULL);
如果我用"vfat"
替换掉"auto"
或者NULL
,什么都没有挂载。
检查busybox的mount源码后,我发现在mount()调用中,如果提供了'auto'或没有提供文件系统类型,则将文件系统设置为NULL。但是这个技巧似乎对我不起作用。我错过了什么?有没有相对简单的方法来解决这个问题?