Встала задача программного монтирования флэшки.
При объявлении в тексте программы внешней функции:
function mount(source:PChar;des:PChar;fstype:PChar;rwflag:Cardinal;
data:Pointer):Integer;cdecl;external 'c';
и её вызове:
mount('/dev/sda1','/mnt/removable1','vfat',1 or 2 or 1024 or MS_MGC_VAL,nil);
флэшка монтируется без проблем, однако есть необходимость передать параметры монтируемой файловой системы (в частности кодировку для отображения русских символов). Мне ясно, что эта информация передаётся в последнем параметре (data:Pointer), но вот с форматом передачи возникли проблемы. Хотелось бы увидеть пример работающего кода от людей, которые уже сталкивались с такого рода задачей
Linux+FPC. Монтирование флэшки
Модератор: Модераторы
- Alexander
- энтузиаст
- Сообщения: 888
- Зарегистрирован: 18.12.2005 18:10:00
- Откуда: оттуда
- Контактная информация:
Ну незнаю как насчёт программного (не пробовал), а обычная строчка
в fstabs выглядит, например, так.
codepage - это у файловой системы, а iocharset моя системная локаль.
Второй вариант - а может использовать команду оболочки ?
( uses OldLinux (или как там сейчас правильно?) и Shell('mount') )
Ну и наконец вопрос, а зачем это, если не секрет ? Ведь и ручное и
автомонтирование уже есть.
в fstabs выглядит, например, так.
Код: Выделить всё
/dev/hda1 /mnt/win_c vfat user,noauto,umask=0,codepage=866,iocharset=cp1251 0 0codepage - это у файловой системы, а iocharset моя системная локаль.
Второй вариант - а может использовать команду оболочки ?
( uses OldLinux (или как там сейчас правильно?) и Shell('mount') )
Ну и наконец вопрос, а зачем это, если не секрет ? Ведь и ручное и
автомонтирование уже есть.
в мане написано:
тоесть обычная С строка, по нашему PChar
Код: Выделить всё
Аргумент data интерпретируется разными файловыми системами. Обычно это строка опций, раздел
енных запятой, понимаемых этим типом файловой системы. Смотрите mount(8) для подробной инфо
рмации об опциях для каждого типа файловой системы.
тоесть обычная С строка, по нашему PChar
Спасибо за ответы. В итоге воспользовался вариантом, предложенным SergKam (при одинаковой функциональности не захотелось вызывать команды шэлла).
2 Alexander:
Автомаунт неприемлем по ряду причин.
Зачем мне это нужно: Происходит программное управление несколькими Mp3 flash плэйерами, т.е. прога должна во-первых - управлять процессом воспроизведения, во вторых - переводить плэйер в режим носителя информации, т.е. подключать его по USB, монтировать ФС (что и является темой данного топика) и т.д., а в-третьих - переводить плэйер обратно в режим воспроизведения (что, в частности, исключает вариант единовременного монтирования при старте ОС).
2 Alexander:
Автомаунт неприемлем по ряду причин.
Зачем мне это нужно: Происходит программное управление несколькими Mp3 flash плэйерами, т.е. прога должна во-первых - управлять процессом воспроизведения, во вторых - переводить плэйер в режим носителя информации, т.е. подключать его по USB, монтировать ФС (что и является темой данного топика) и т.д., а в-третьих - переводить плэйер обратно в режим воспроизведения (что, в частности, исключает вариант единовременного монтирования при старте ОС).
