问题标签 [erlang-nif]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1225 浏览

erlang - Erlang:与 Xalan 接口:端口驱动程序还是 nif?

我想要一个真正的 XSLT 处理器与 erlang 一起工作。哪个是最好的接口、nif 或端口驱动程序?根据 nif 文档,nif 调用会阻塞运行时,因此它们不会花费很长时间。处理长 xml 文档是否太长?

另外,我想在转换期间允许 erlang 回调。这似乎可能吗?可以使用 nif 但不能使用端口驱动程序,反之亦然?

我从来没有写过任何 C,所以我认为这是一个很好的介绍。Xalan 是 C++。我认为 nif 可以使用它,对吗?

0 投票
1 回答
1293 浏览

c - Erlang NIF 和线程的问题

我对 Erlang NIF 中的线程有一点问题。你可以在这里查看我的代码:http: //pastebin.com/HMCj24Jp。问题是当我启动线程时,它需要一些参数并启动generate_binary函数。这没关系,但是当我试图阅读论点时,一切都崩溃了。

这可能不是最复杂的问题,但我找不到任何关于此的文档,所以我希望你们中的一些人可能知道答案。

0 投票
1 回答
3539 浏览

c - erl_nif.h 未找到

我尝试使用erlang nif,

我做了:

但得到错误:

致命错误:erl_nif.h:没有这样的文件或目录

我在哪里可以找到它?我已经安装了 erlang R14B (erts-5.8.1)

操作系统 Arch linux。

谢谢你。

0 投票
3 回答
1334 浏览

c - Erlang NIF 测试——OS X Lion

我正在尝试在 Mac OS X Lion 上编译来自 Erlang ( http://www.erlang.org/doc/man/erl_nif.html ) 的 NIF 测试。我无法编译它。我是否缺少编译器标志?这是我得到的错误:

我也试过这个,-m32但它说也没有 i386 架构。

谢谢!

0 投票
2 回答
467 浏览

c - 在 Erlang 中表示 C 数组的最佳方式是什么?

在 Erlang 中表示 C 数组的最佳方式是什么?我计划使用 NIF 将 C 数组传递给 Erlang。该数组由字节组成,我需要在程序运行时修改一些字节。任何帮助表示赞赏。

0 投票
2 回答
622 浏览

erlang - 如何使用 NIF 与跨调用保持状态的 C 代码交互(即,作为 NIF 的链表)

我想创建一个用 C 实现的链表数据结构。我的想法是创建一个链表

上面的 ListId 表示某种类型的“指针”,它将被传递回 C 代码,该 C 代码将用作列表上的某种类型的句柄。我希望不必来回传递列表本身,因为我想象列表可能会变得非常非常大。一旦创建了链表,用户就会以明显的方式与之交互:

我想我会通过 Erlang 的 NIF 功能来做到这一点。现在,为了使其工作,C 端必须跨多个调用 add、add_after 等维护列表。

在直接的 C 语言中,我将有一个用户与之交互的主函数,该函数将使程序保持活动状态,从而在用户与程序交互的整个生命周期内保持链接列表的持久性。据我了解,NIF 使用没有主要功能的 C 代码。也就是说,每次调用 NIF 都是一次性的命题。

有人可以给我一些关于如何(假设它是适当的)可以利用 NIF 与需要在多个调用中保持状态的 C 代码交互的指示吗?我希望这很清楚!

0 投票
2 回答
1358 浏览

c - 通过 NIF 创建 Erlang 二进制文件,数据指向 char *

我正在使用 NIF 进行 C-Erlang 集成,但在初始化 aBinary并添加指向其数据的 char * 时遇到了一些麻烦。

我正在这样做:

关于我做错了什么有什么想法吗?我遇到了分段错误。

更新:我摆脱了分段错误。但现在我无法返回包含String.

enif_make_string与 binary.data 一起使用,我在 Erlang 上得到了一个字符串。但是当我尝试使用enif_make_binary二进制文件时,我得到了这样的<<0,0,0,0,0,0,0,0,112,40,129,20>>东西我需要做什么来转换?

0 投票
1 回答
1517 浏览

c - 将二进制文件传递给erlang nif

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

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

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

谢谢!

0 投票
2 回答
332 浏览

windows - Windows上erlang的开发环境

我有一个 erlang 项目,其中包括具有与原始套接字一起使用的操作系统特定功能的 NIF。我想将此项目移植到 Windows 上,这意味着将 NIF 中的功能更改为在 Windows 上工作。

在 Windows 上进行 erlang 编程的首选 IDE 是什么?

为了能够编译这个项目,我必须设置什么?

0 投票
1 回答
1572 浏览

erlang - NIF 包装我的多线程 C++ 代码

我有一个通过串行端口实现特殊协议的 C++ 代码。代码是多线程的,内部轮询串口并做自己的循环处理。我想从 erlang 调用这个驱动程序并接收来自这个驱动程序的事件。我担心的是这个 C++ 代码是多线程的,也是有状态的,这意味着当我在驱动程序上调用某个函数时,它会在内部缓存将在驱动程序的后续调用中使用/需要的内容。我的问题是

1.NIF是否与我的其他erlang进程在同一个操作系统进程中运行,或者NIF是否在单独的操作系统进程中启动?

2.用NIF扭曲这个多线程有状态的C++代码有意义吗?

4.如果 NIF 不是正确的方法,那么让 Elrang 与这段 C++ 代码来回交谈的更好方法是什么。我也更喜欢我的 C++ 代码与我的其他 Erlang 进程位于同一个 OS 进程中,因为看起来链接驱动程序是一种选择,但不确定我的 C++ 代码的多线程性质是否可以接受模型。另外,我听说他们会搞砸 elrang 调度程序?