Замечено, что есть API vn_xxx для выполнения операции над файлом, например, vn_rdwr(...). Из сетевого поиска выяснилось, что vn_rdwr(...) использовать не рекомендуется.
Несколько запросов вокруг одного и того же:
- Является ли этот vn_xxx API несовместимым с версиями Mac OS X?
- Разве это не безопасно? Есть ли какие-нибудь примеры, на которые я мог бы посмотреть, как используется vn_rdwr?
- Есть ли какие-либо альтернативы, кроме делегирования файлового ввода-вывода демону?
Было бы здорово, если бы кто-то мог предоставить комментарии\предложения?
#ifdef KERNEL_PRIVATE
, поэтому их API не должны меняться обратно несовместимыми способами между версиями. Быстрая проверка с помощью тестового кекста должна сказать вам, действительно ли кексты могут ссылаться на них. Поскольку я не использовал их, я не могу комментировать, следует ли. Однако вся документация, которую я видел, конкретно не рекомендует файловый ввод-вывод на основе ядра. Я подозреваю, что это связано с безопасностью потоков - если вы должны позвонить им, я бы посоветовал сделать это из выделенного потока. - person pmdj   schedule 20.05.2012