Как читать файлы с диска напрямую? - PullRequest
2 голосов
/ 03 июля 2011

Можно, конечно, использовать fopen или любое другое большое количество API, доступных на Mac, для чтения файла, но мне нужно открыть и прочитать каждый файл на диске и сделать это максимально эффективно. .

Итак, я подумал о том, чтобы использовать / dev / rdisk * (?) Или / dev / (?) Для запуска файлов в начале устройства. Я приложил бы все усилия, чтобы прочитать файлы в порядке их появления на диске, минимизировать количество запросов по устройству, поскольку файлы могут быть фрагментированы, и считывать большие блоки данных в ОЗУ, где они могут быть обработаны очень быстро.

Итак, основной вопрос, который у меня возникает, - при прямом считывании данных с моего устройства, как я могу точно определить, какие данные принадлежат каким файлам?

Полагаю, я мог бы начать с чтения каталога файлов и найти способ определения местоположения начала и окончания файла или его фрагментов на диске, но я не уверен, где найти информацию о том, как получить такую ​​информацию ...?

Я использую Mac OS X 10.6.x, и можно предположить стандартную настройку диска. Я мог бы предположить, что та же информация будет применяться к стандартному несжатому .dmg только для чтения, созданному также Дисковой утилитой.

Любая информация на эту тему или статьи для чтения будет представлять интерес.

Я не представляю, что я хочу сделать, особенно сложно, когда понятны формат и расположение файлов на диске.

спасибо

1 Ответ

0 голосов
/ 06 августа 2011

Как упоминалось в комментариях, вам нужно взглянуть на формат файловой системы , однако, читая сырой диск последовательно, вы (1) не гарантируете, что последующие блоки принадлежат одному и тому же файлу, поэтомувам, возможно, придется искать в любом случае, чтобы уменьшить преимущество, которое вы имели от чтения непосредственно с / dev / device, и (2) если ваш диск заполнен только на 50%, вы все равно можете закончить чтение 100% диска, как вы будетеЧтение нераспределенного пространства, а также пространства, выделенного для файла, и, следовательно, непосредственное приготовление из / dev / device также может быть эффективным.

Однако fsck и подобные выполняет эту операцию, но делают это с модерацией nasedна возможные ошибки, которые они ищут при восстановлении файловых систем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...