【发布时间】:2012-10-18 08:09:16
【问题描述】:
我希望能够将字符串 - 列表 - 传递给 Erlang 的 C 节点,并在经过一些计算后将字符串返回给 Erlang 进程。
result = function(input_string),
其中 input_string 的类型为 ETERM *
我对字符串的计算使用 char * 字符串变量。
如果这些信息足够继续,请告诉我。
[erl_interface 教程中的 C 节点示例使用 C 节点的整数输入和输出]
TIA,
BR,
谢伦
【问题讨论】:
-
您考虑过使用 nif 吗? erlang.org/doc/man/erl_nif.html imo 更容易实现,并且有一个钢筋模板,这使得更容易。
-
@cashmere,nif 不适合将多个大文件读入搜索空间的要求,但在启动时,而不是在每次调用时,谢谢。
-
@ombud 一个 NIF 库可以指定一个
load函数,该函数可以将信息写入其参数*priv_data。然后,您可以使用名为enif_priv_data的函数在每次 NIF 调用时获取指向此数据的指针。