C语言 将二进制传递给 erlang nif



我正在编写一些Erlang代码,它基本上接受来自TCP连接的一些二进制数据,然后使用C nif解密数据并返回解密的数据。

问题是我似乎无法弄清楚如何修改传入的二进制文件。

这是我正在使用的功能。如果有人能指出我正确的方向,我将不胜感激。

static ERL_NIF_TERM decrypt(ErlNifEnv* env, ErlNifBinary *data);

谢谢!

不能修改传递的二进制文件。您需要先创建副本并修改复制的二进制文件,然后将复制的(=修改)二进制文件返回给调用方。

请记住,二进制文件是在共享堆中分配的;如果你覆盖了原始文件,你就会遇到麻烦,因为这违反了 Erlang 的单一赋值原则。

有关详细信息,请参阅在 sfmt-erlang NIF 代码中处理二进制参数的示例。

相关内容

  • 没有找到相关文章

最新更新