计算erlang中文件的校验和

时间:2015-03-22 13:59:57

标签: erlang md5

我正在尝试使用erlang提供的BIF来计算大文件的md5校验和:

  1. 二郎:md5_init()
  2. 二郎:md5_update()
  3. 二郎:md5_final()
  4. 在以下代码中:

    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。有什么建议吗?

1 个答案:

答案 0 :(得分:3)

erlang:md5_init没有参数。

不要忘记在编译时没有检查其他模块中定义的函数。