niftest.erl 474 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. -module(niftest).
  2. -on_load(init/0).
  3. -export([
  4. init/0,
  5. hello/0,
  6. factorial/1
  7. ]).
  8. -nifs([
  9. hello/0,
  10. factorial1/1
  11. ]).
  12. init() ->
  13. erlang:load_nif("./niftest", 0).
  14. hello() ->
  15. erlang:nif_error("NIF library not loaded").
  16. factorial(N) when is_integer(N), N >= 0 ->
  17. case factorial1(N) of
  18. Bin when is_binary(Bin) ->
  19. binary:decode_unsigned(Bin);
  20. Error ->
  21. Error
  22. end;
  23. factorial(_) ->
  24. {error, badarg}.
  25. factorial1(_) ->
  26. "NIF not loaded".