2015-03-22 4 views
0

Я пытаюсь вычислить md5 контрольную сумму большого файла с помощью BIFS, что Эрл предлагает:Вычисление контрольной суммы файла в Эрл

  1. Erlang: md5_init()
  2. Erlang: md5_update()
  3. Эрланга: md5_final()

В следующем коде:

to_md5_large(File) -> 
    case file:read_file(File) of 
     {ok, <<A:4/binary,B/binary>>} -> md5_helper(B,erlang:md5_init(A)); 
     {error,Reason} -> exit(Reason) 
    end. 

md5_helper(<<A:4/binary,B>>,Acc) -> md5_helper(B,erlang:md5_update(Acc,A)); 
md5_helper(A,Acc) -> 
    B =  erlang:md5_update(Acc,A), 
    erlang:md5_final(B). 

Однако кажется, что md5_init() не распознается. Когда я компилирую, все работает нормально, возвращая {ok,module}, однако при запуске я получаю сообщение об ошибке, указывающее, что в строке, указанной выше, есть неопределенная функция md5_init. Какие-либо предложения?

ответ

3

erlang: md5_init не имеет параметров.

Не забывайте, что при компиляции о функциях, определенных в других модулях, проверка не выполняется.

+0

Ничего себе. Как я пропустил это. Помните, если я удалю? – Bula

+0

не беспокойтесь: o) ... – Pascal

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