问题标签 [erlang-ports]

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

erlang - 从 erlang-sqlite3 中的端口收到的消息

Erlang-sqlite3 使用端口驱动连接 SQLite 数据库,并从端口接收消息

我认为来自端口的消息应该如下所示

因此,当取消注释子句中的io:format行时{Port, Reply},我应该期望看到{data, ...}实际的回复。我不; 相反,我看到 (for test.erl)

  1. 我哪里错了?
  2. 我收到的有关端口错误的消息是否看起来像{'EXIT',Port,Reason}
0 投票
1 回答
437 浏览

erlang - Erlang:对港口所有者死亡的鲁棒性

当拥有派生端口的进程死亡并由主管重新启动时会发生什么?

  1. 有没有办法让老港口不随主人一起死去,让新主人“接管”?

  2. 如果做不到这一点,是否可以确保生成的进程在其端口死亡时终止?

0 投票
2 回答
1636 浏览

bash - 通过 Erlang 端口调用 Shell 脚本时行为异常

当从 Erlang 调用 shell 脚本时,我通常需要它们的退出状态(0 或其他),所以我使用这个函数运行它们:

这工作得很好,直到我用它来启动一个分叉程序并退出的脚本:

(在实际用例中,还有很多参数,并且在将它们传递给程序之前进行了一些按摩)。从终端运行时,它会按预期显示图像并立即退出。

但是从 Erlang 运行,它没有。在日志文件中,我看到它开始正常:

eog出现窗口。但我明白

直到终止eog进程(kill关闭或关闭窗口),这不适合我的要求。为什么行为上的差异?有没有办法解决它?

0 投票
1 回答
1462 浏览

networking - 在erlang中通过UDP发送数据包

所以我试图将 udp 数据包发送到计算机上的侦听端口,该端口未连接到同一个 LAN,但通过 erlang 中的 gen_udp 可以访问互联网。

我通过打开{ok, Socket} = gen_udp:open(8887).端口gen_udp:send(节点),所以我想知道我是否做错了什么?,我检查了防火墙和erlang,并且允许使用epmd。

0 投票
1 回答
2077 浏览

opencv - Erlang 上的 OpenCV

我想在我的Erlang应用程序中使用OpenCV 。一种解决方案是编写一个 Erlang 端口等,但我确信它之前已经完成。

理想的结果是能够从 Erlang 配置 OpenCV,并且永远不会接触一行 C 代码。但这可能吗?你会怎么做?

0 投票
2 回答
1238 浏览

c++ - 通过端口从 Erlang 调用 C 函数的最快和最简单的方法是什么?

Francesco Cesarini 的“Erlang Programming”一书提供了一个很好且易于上手的将 Erlang 连接到 Ruby 的示例(通过端口实现):

但是,本例中使用的 Ruby 代码使用 Erlictricity 库,它为程序员完成了所有低级的事情:

我尝试使用这个稍作修改的 test.erl 代码:

说一个非常简单的 C 文件:

但不幸的是 test.erl 中的接收循环收到一条消息{#Port<0.2028>,{exit_status,2}}

我的问题是:是否可以在 C/C++ 中实现类似的东西?是否有任何现成的 Erlang 库可以通过类似于 Erlictricity for Ruby 的端口与 C/C++ 对话?

0 投票
2 回答
743 浏览

python - 从 Erlang 打开一个 Python 端口:没有回复消息

根据 OTP in Action 书的第 12 章和 Cesarini 的书,我编写了这个 Erlang 代码:

二郎:

Python:

Erlang 代码在 recieve 子句处暂停 - 它永远不会收到任何消息。

我还从常规 Linux shell 检查了 Python - 它打印出每个用户输入(1 - “Python got 1”)。

这里的错误在哪里?为什么我的 Erlang 代码没有得到任何回报?

0 投票
3 回答
1177 浏览

c++ - 如何将 Erlang 连接到 C++?

我写了一段非常简单的 C++ 代码:

我已经在 shell 中对其进行了测试——它返回一个在 shell 中输入的值。

但是当我尝试从 Erlang 调用它时,它返回 {exit_status,0},据我了解,这意味着它刚刚退出

Erlang 代码在这里:

如何将我的 Erlang 端口连接到这个简单的 C++ 代码?

升级版:

将 C++ 代码更改为此(无用的版本):

Erlang 端口进程仍然获得 {exit_value,0}。如果我在 shell 中运行此代码,则在按两次 Return 之前不会回显键盘输入。

0 投票
1 回答
610 浏览

c++ - Erlang 端口无法正确处理 C++/Qt 回复

我正在尝试通过 Erlang 端口将 Erlang 程序与一个简单的 Qt 窗口应用程序进行通信。

问题是 Qt 窗口事件 ( on_pushButton_clicked()) 的结果仅在窗口关闭后显示在 Erlang 端口中,而不是在按下按钮时显示:

Erlang(在这里发送消息什么都不做,我们有兴趣从 Qt 获取数据):

运行它并在窗口中填充文本字段的结果是什么(Erlang 什么也得不到,只是在receive子句中等待):

只有当我手动关闭窗口时 Erlang 才会说:

那么,为什么我不立即将 Qt 中的数据导入 Erlang 端口呢?

UPD。解决方案:

解决方案是 flush() Qt 的缓冲区:

而不是fprintf(stdout, "window_input:");我用

它奏效了。

PS 但是,我不明白为什么在控制台中测试同一个 Qt 应用程序时没有发生这个问题 - 它立即返回数据我填写了窗口中的文本字段(即事件)。