Мое приложение должно монтировать и проверять содержимое любого флеш-накопителя, вставленного в USB-разъем. Проблема в том, что некоторые пользователи могут использовать флешки, отформатированные для файловых систем, отличных от стандартного vfat. Стандарт
mount /dev/sda1 /mnt/pendrive -t auto
будет достаточно для моих нужд - это работает, и будет использоваться любая файловая система, читаемая ядром. Проблема в том, что я должен делать это из приложения, и я бы предпочел избегать вызова system()
и команд оболочки, когда существует «естественное» решение C.
#include <sys/mount.h>
...
result = mount("/dev/sda1", "/mnt/pendrive", "vfat" ,0, NULL);
работает правильно. Но если я заменю "vfat"
на "auto"
или NULL
, ничего не смонтируется.
Когда я проверил источники для монтирования busybox, кажется, что файловая система устанавливается в NULL в вызове mount(), если указано «авто» или тип файловой системы не указан. Но этот трюк, кажется, не работает для меня. Что мне не хватает? Есть ли какой-то относительно простой способ сделать это?
auto
в качестве типа файловой системы. - person Petesh   schedule 09.07.2012