问题标签 [erlang-driver]

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 投票
2 回答
325 浏览

erlang - 在 Erlang 中分析链接的驱动程序

如何分析链接的端口驱动程序?OTP 工具(fprof等)显然只分析 Erlang 代码,我没有 C 可执行文件可提供给gprof.

0 投票
1 回答
359 浏览

erlang - 向 Erlang 驱动程序发送术语而不是 iolists

是否有driver_output_term另一个方向的等价物,即在没有先将其转换为 iolist 的情况下向驱动程序发送 Erlang 术语?如果不是,我大概应该使用转换我的术语term_to_binary并在 C 端用ei;解析它。有什么好的例子吗?

0 投票
2 回答
103 浏览

erlang - 循环中的错误

给定列表的每个元素上的以下循环:

如何捕捉错误并继续循环元素?

如果此代码在 gen_server 中以及 process_flag(trap_exit, true) 是否存在同样的问题?

0 投票
1 回答
193 浏览

erlang - glpkerl (glpk erlang 库) 编译错误

我正在尝试在 Ubuntu 11.10 上编译 glpkerl 库,但到目前为止还没有成功。

由于我一直遇到错误,也许我缺少一些重要的东西:

我试过的

我安装的 Erlang 版本是 R14B02(通过我的发行版的官方 apt 存储库安装)。

由于我的 glpk 版本在官方 repo 中更新,我从这里下载了 glpk-4.38:http: //ftp.gnu.org/gnu/glpk/。我不想在系统范围内安装此版本的 glpk,因此我创建了一个目录 ~/opt,并在以下步骤中将其用作要安装的所有库的根目录。

接下来,我下载 glpkerldrv 并尝试安装它:

显然在使用 make 时出了点问题。如 glpkerl install wiki 所述,我在配置期间使用 --disable-hardcore 禁用了编译器警告到错误的转换。但即便如此,以下未声明的标识符错误仍然存​​在:

显然,生成 handlers.c 文件的 perl 脚本也应该包含limits.h。我通过添加以下内容来纠正它(我没有使用 C 的经验,所以我不确定这是否是正确的方法):

现在建筑工作了(--disable-hardcore虽然我不认为警告会被忽略,但请参阅附件),我可以执行 make、make check 和 make install,我已经这样做了。

我被困在第二部分:

虽然构建似乎工作正常,但由于透析器错误,检查失败:

显然,我们可以将 DIALYZERFLAGS 传递给 makefile,我这样做了:

这是我不确定如何进行的地方

执行最后一条命令后,出现以下错误:

奇怪的是,+debug_info 参数显然被传递给了 erlang 编译器,如 Makefile.opt 文件中所示。

我停止了进一步调查,因为我不确定如何在当前环境下解决这个问题;我在这里遗漏了一些明显的东西吗?谢谢!

(标签:二郎 glpk glpkerl)

0 投票
1 回答
247 浏览

mongodb - 使用副本集时关于 mongodb-erlang 驱动程序的奇怪事情

我的代码是这样的:

27017是主节点,所以我可以成功插入数据。

但是,当我在代码中只放置一个辅助节点而不是所有 mongo rs instance:Replset = {<<"rs1">>, [{localhost, 27019}]}时,我也可以插入数据。

我认为它应该抛出异常或错误,但它已经成功写入数据。

为什么会这样?

0 投票
1 回答
353 浏览

java - 如何使用 java 客户端从 redis 读取 erlang 术语?

例如,我通过 jedis 将元组 T = {k1, v1, k2, v2} 保存到 redis:

我正在尝试使用下面的代码来阅读这个 erlang 术语:

错误是:com.ericsson.otp.erlang.OtpErlangDecodeException:未知数据类型:239。

那么我怎样才能正确地得到 erlang 术语呢?


二郎端:

term_to_binary({k1, v1, k2, v2})。

<<131,104,4,100,0,2,107,49,100,0,2,118,49,100,0,2,107,50, 100,0,2,118,50>>

Java端:

j.get("mykey").getBytes():

-17 -65 -67 104 4 100 0 2 107 49 100 0 2 118 49 100 0 2 107 50 100 0 2 118 50。

似乎只有前 3 个字节不同。所以我把它们改成byte(131),然后就可以用System.out.println(OtpErlangObject.decode(ois))正确打印了。

但是当术语更复杂时,例如对于内部带有列表的记录,它就不起作用了。因为其他一些字符不仅会出现在数据的开头,还会出现在数据的末尾和中间。

为什么我保存的数据与我得到的不同?

0 投票
1 回答
342 浏览

c - 如何编译 Erlang 驱动程序?

我试图更好地理解 Erlang 驱动程序是如何工作的,我从书中的一个简单示例开始,但是当我编译包含本机 Erlang 驱动程序代码的 C 文件时,我收到以下编译错误消息:

/tmp/ccQ0GroH.o:example1_lid.c:(.text+0xe): undefined reference to driver_alloc' /tmp/ccQ0GroH.o:example1_lid.c:(.text+0x2f): undefined reference todriver_free' /tmp/ccQ0GroH.o:example1_lid.c:(.text+0xb0): undefined reference to 'driver_output'

有谁知道为什么会发生这种情况以及我该如何解决?C文件发布在下面以供参考。

谢谢。

0 投票
1 回答
849 浏览

erlang - 短路 Erlang 端口映射器守护进程

给定一个已知的 TCP 端口和远程 beam.smp 服务的名称,以及一个已知的 cookie,是否可以将 Erlang 分发协议的 Erlang Port Mapper Daemon 握手阶段短路,并直接建立一个 Erlang shell 到目标波束.smp 服务?

该协议记录在这里:

http://erlang.org/doc/apps/erts/erl_dist_protocol.html

和这里:

https://github.com/blackberry/Erlang-OTP/blob/master/lib/kernel/internal_doc/distribution_handshake.txt

但我不清楚 recv_challenge/send_challenge 身份验证是通过 Erlang Port Mapper Daemon 还是绑定到特定端口的 beam.smp 服务发生的。

感谢您的时间。

0 投票
1 回答
255 浏览

mysql - 无法安装 mysql 驱动程序 Erlang:src/mysql_auth.erl:178: crypto:sha/1 已弃用,将来将被删除

我一直在尝试使用https://github.com/dizzyd/erlang-mysql-driver安装 mysql 驱动程序

我正在使用 Erlang 5.10.3。驱动程序是否有任何更新以支持 Erlang 5.10.3?

0 投票
0 回答
2641 浏览

erlang - 网络断开后如何继续上一个会话?

我正在使用 ejabberd 作为服务器在 android 应用程序中工作。我使用 VOIP 呼叫用户。当我的互联网连接断开时,我与服务器断开连接。互联网连接到来后,我需要在超时发生之前继续上一个会话。我找到了 XMPP 扩展 XEP-0198 流管理,但是这个扩展在 ejabberd 中没有实现。这个扩展实现了在韵律服务器和一些客户端。但我想要的是不应该重新登录,这意味着打开一个新流,TLS,SASL身份验证和资源绑定不应该在继续上一个会话时发生,而是直接恢复上一个会话。还有其他的吗替代这个?