Текущая реализация файловой системы имеет следующие ограничения:
1. Поддержка только FAT.
2. Поддержка только имен файлов в формате 8.3.
Есть одно исключение - при чтении директории длинные имена можно добыть. Но, во-первых, это не является заслугой ядра, а во-вторых, обращаться к файловой системе по этим именам все равно нельзя.
3. Отсутствие нормальной работы с директориями - можно только читать их как файлы. С этим еще можно работать, пока поддерживается только FAT, хотя и несколько неудобно, но в дальнейшем...
О пункте 1 речь пока не идет. Я собираюсь сделать нормальную работу с длинными именами файлов и, потом, с каталогами, но:
для работы с файловой системой используется 58-я функция. (Все прочие всегда можно объявить устаревшими.) Формально в документации примеры путей имеют вид "/hd/1/file.ext". Но ядро понимает также имена типа "/hd/1/FILE EXT" (4 пробела) (и даже "/hd/1/FILENAMEEXT" как "/hd/1/filename.ext"). Поэтому для длинных имен придется делать одно из:
1) Отказаться от обратной совместимости, поправить mfar, sysxtree (кстати, есть еще программы, использующие это?) (надеюсь, я могу заниматься такими модификациями?)
2) Завести новую сисфункцию типа "расширенная работа с файловой системой"
3) Завести дополнительные подфункции в 58-й функции типа 0x100 - read, 0x101 - write и т.д.
Ваше мнение, коллеги?
P.S. Я предпочитаю забить на обратную совместимость.
_________________ Ушёл к умным, знающим и культурным людям.
|