2013-07-28 3 views
1

Эта программа http://www.fourmilab.ch/random/ сканирует весь файл, чтобы определить его плотность информации (aka entropy/randomness).Редактировать сканер файлов для сканирования только первого .01MB каждого файла

Я хочу отредактировать его для сканирования только первого .01 МБ файла, а не всего, чтобы ускорить время сканирования (общий сетевой ресурс, который мне нужно сканировать, составляет 2 ТБ).

Источник включен в загрузку, поэтому его должно быть легко сделать; Я просто не знаю, как начать.

Любые идеи?

ответ

1

Быстрый просмотр кода в ent.c, показывает оператор while в строке 181. Эта строка содержит fgetc из файла, на который указывает fp. Чтобы это правильно работало, вы просто добавляете счетчик в инструкцию. Что-то вдоль линий

while ((my_count++ < MAX_COUNT) && ((oc = fgetc(fp)) != EOF)) 

где my_count является Int (или долго - в зависимости от того, насколько велика вы действительно хотите) и MAX_COUNT для вас будет 100000. Не забудьте инициализировать my_count 0.

+0

ли вам средняя линия 181? – willc2

+0

willc2 - спасибо - я исправил его. –

+0

Я сделал редактирование, но, похоже, это не повлияло на время сканирования, как я надеялся. Например, небольшой .txt-файл сканирует очень быстро, но большой файл .iso занимает некоторое время. Вот как выглядит мой код: /* Считывание входных файлов и совпадений символов */ \t float my_count = 0; \t const MAX_COUNT = 100000; \t в то время как ((my_count ++ blashmet

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