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