Tag: erlang ports

C和Erlang:Erlang Port示例

免责声明:该问题的作者具有Erlang的平均知识和C的基本知识。 我现在正在阅读互操作性教程用户指南 。 我已成功编译了complex.c示例,它与Erlang端口一起使用没有任何问题。 但是,我想了解实际的C代码是如何工作的。 我一般都理解它:在示例中,它从标准输入读取2个字节并检查第一个字节。 根据第一个字节,它调用foo或bar函数。 这是我现在对它的理解的极限。 所以,如果我们同时使用erl_comm.c : /* erl_comm.c */ typedef unsigned char byte; read_cmd(byte *buf) { int len; if (read_exact(buf, 2) != 2) return(-1); len = (buf[0] <> 8) & 0xff; write_exact(&li, 1); li = len & 0xff; write_exact(&li, 1); return write_exact(buf, len); } read_exact(byte *buf, int len) { int i, […]