2016-11-16 1 views
0

Я хотел бы извлечь данные из буферного файла из объекта Vnode.Получить буфер данных данных из Vnode BSD OSx

Я использую BSD для MAC, а также ссылка на Vnode справки о можно найти здесь: https://opensource.apple.com/source/xnu/xnu-1456.1.26/bsd/sys/vnode.h

Кроме того, создавая операцию чтения для каждого принятого обратного вызова, как описано здесь: https://stackoverflow.com/a/36217596/2452682 не вариант из-за ограничения памяти ядра.

ответ

0

Что вы подразумеваете под «извлечением данных буфера данных» и какие ограничения вы имеете в виду?

В общем, использование специальной функции чтения fs является неизбежным - содержимое файла, возможно, даже не присутствует в ram в первую очередь.

Итак, что вы делаете?

+0

Я имею в виду чтение двоичных данных файла. Например, во время обратного вызова области «KAUTH_FILEOP_EXEC» вы должны иметь все доступные данные. И, наконец, я хотел бы передать двоичные данные файла демону пользовательского режима. – IdoT

+0

№ Во-первых, согласно http://fxr.watson.org/fxr/source/bsd/kern/kern_exec.c?v=xnu-2050.18.24#L1376 только первая страница * возможно * доступна в то время , Я не знаю, что вы на самом деле пытаетесь сделать, это звучит очень неправильно. Если вам нужен доступ к исполняемым файлам (почему?), Я бы предложил создать дескриптор файла для каждого из них и передать его слушателю. Затем он может легко читать файлы по мере необходимости. Однако это звучит как крайне ошибочная попытка проверочных проверок, которая неизбежно потерпит неудачу - ядру все равно, что возвращает слушатель. –

Смежные вопросы