Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
А что произошло бы, если бы мы попытались сделать так?
Ну, поскольку у администратора последовательного порта не установлен флаг каталога, администратор процессов увидит эта и скажет: «Опаньки, извините,
Из параметров функции open в примере выше видно, что может показаться заманчивой
Объединенные файловые системы
Взгляните повнимательнее на уже знакомый нам рисунок.
Пространство имен путей в QNX/Neutrino.
Обратите внимание, что ответственными за префикс «
Файловые системы с перекрытием
Предположим, что у вас очень медленное сетевое соединение, и вы смонтировали поверх него сетевую файловую систему. Вы замечаете, что некоторый файлы используются достаточно часто, и хотели бы, чтобы эти файлы неким волшебным способом «кешировались» на вашей машине, но увы и ах, проектировщики сетевой файловой системы это почему-то не предусмотрели. И тогда вы решаете самостоятельно написать кеширующую файловую систему (назовем ее, например,
Обе файловые системы,
Предположим, что ваша система только что стартовала, и в вашей кэшированной файловой системе еще ничего нет. Клиентская программа пробует открыть какой-нибудь файл — скажем
Клиентский вызов open выполняет свои обычные действия:
1. Спрашивает администратор процессов: «К кому обратиться по поводу файла
2. Получает ответ от администратора процессов: «Поговори сначала с
Обратите внимание, что здесь администратор процессов возвращает две четверки ND/PID/CHID/handle — одну для файловой системы
Далее функция open делает следующее:
1. Направляет сообщение файловой системе
2. Получает ответ от файловой системы
Здесь становится ясно, что с администратором файловой системы
1. Направляет сообщение файловой системе
2. От файловой системы приходит ответ: «Запросто, никаких проблем!»
Теперь, после того как у функции open есть EOK («никаких проблем»), она возвращает дескриптор файла. Все дальнейшие операции клиент выполняет непосредственно с администратором сетевой файловой системы
Так когда же вступает в игру наша кеширующая файловая система
1. Сообщение администратору процессов: «С кем я должен переговорить насчет файла
2. Ответ администратора процессов: «Поговори сначала с
3. Сообщение
4. Ответ от
Обратите внимание на то, что на 3 этапе мы открыли файл на запись, а не на чтение, как в первый раз. Поэтому не удивительно, что
Еще более интересные события происходят, когда мы повторно пытаемся прочитать этот файл:
1. Сообщение администратору процессов: «С кем я должен переговорить насчет файла
2. Ответ администратора процессов: «Поговори сначала с