• Erlang和外部程序的交互通过一种叫port的技术来通信,为了保证安全,外部进程的crash不会影响到erlang的vm本身
• 具体过程是这样的
• 1. 首先通过open_port来启动外部程序,并绑定一个erlang进程在这个port上
• 2. 这个绑定的进程拥有所有和外部程序的接口,所有和外部程序的交互都通过他来走
• 3. 绑定的进程和外部程序之间是通过二进制流来交互的
Ports• Port = open_port(PortName, PortSettings)
• PortName的格式可以为:
• {spawn, Command} 启动外部程序Command
• {fd, In, Out} 允许进程访问所有当前打开的文件
• PortSettings可以为:
• {packet, N} 包大小字节数(1,2,4)
• stream 流方式
• {line, Max} 行方式,超过Max将会被截断
• {cd, Dir} 给({spawn,Command}启动的程序设定启动的目录
• {env, Env}给({spawn,Command}启动的程序设定环境变量,格式[{Name1,Value1},{Name2,Value2}]
•
• 对这个得到的Port,可以类似Pid一样的操作,可以发送的消息有:
• Port ! {PidC, {command, Data}} 发送一个命令
• Port ! {PidC, {connect, Pid1}} 重新连接到Pid1上
• Port ! {PidC, close}
• 连接的进程会收到的消息格式为:
• {Port, {data, Data}}
Linked-In Drivers• 和java的jni类似,erlang也允许外部程序以动态连接库的方式嵌入运行
• 使用方式和spawn出来的一样
• 不过不推荐使用,因为如果这个外部的驱动挂了,有可能会导致整个erlang系统挂掉
分享到:
相关推荐
资源名称:Erlang语音学习资料汇总资源目录:【】Erlang程序设计【】[ManningPublications]ErlangandOTPinAction【】[NoStarchPress]LearnYouSomeErlangforGreatGood!ABeginner'sGuide【】[O'ReillyMedia]...
Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang语言的一个框架,提供了多种库和工具,包括进程管理、分布式计算、错误恢复和性能监控等功能。 标题中的"erlang9.rar"是一个压缩...
理解函数式编程的核心概念,如不可变数据、高阶函数和模式匹配,是学习Erlang的基础。 2. **过程与并发**:Erlang中的并发是通过轻量级进程(Lightweight Processes, LWP)实现的,每个进程有自己的堆栈和消息队列...
"Erlang中文基础教程" Erlang 编程语言是一种功能强大且灵活的编程语言,它提供了一个交互式的 shell 环境,允许用户在其中编写和运行代码。 Erlang Shell 是一个命令行交互环境,类似于 UNIX 和 LINUX 系统的...
Joe的那篇erlang论文 Programming Erlang + 源码包 Erlang Programming Concurrent Programming in Erlang efficiecy guide 资源齐全.希望能帮到你.
### Erlang 入门学习经典资料解析 #### Erlang 的神秘与起源 Erlang,作为一门相对小众但极具特色的编程语言,自问世以来便伴随着一种神秘的气息。这种神秘感不仅源于它独特的编程范式——函数式编程,还在于其...
在这个“erlang 连接学习例子”中,我们有两个核心文件:`server.erl` 和 `client.erl`,它们分别代表了一个服务器进程和客户端进程,展示了Erlang中进程间的通信机制。 `server.erl` 文件通常包含一个持续运行的...
### Erlang 中文基础教程:理解Erlang Shell与模块函数 #### 1. Erlang Shell:编程者的交互式环境 Erlang Shell是Erlang编程语言提供的一种交互式编程...掌握这些基础知识,是深入学习Erlang编程语言的重要一步。
erlang基础教程,比较适合初学者学习使用
这份"Erlang游戏程序学习完整PDF手册"是一份全面介绍Erlang在游戏开发中应用的学习资料,包含了Erlang的基础知识、并发原理以及在游戏开发中的实践案例。 Erlang语言的设计理念源自于Ericsson公司为解决电信系统中...
Erlang是一种专为电信行业开发的并行编程语言和运行时系统,由爱立信公司...虽然本文档提供了Erlang的基础知识,但若要深入学习并使用Erlang进行编程,建议通过系统学习专门介绍Erlang的书籍或资料来获得更全面的了解。
### Erlang编程语言基础知识 ...通过以上介绍,我们不仅了解了Erlang的基础概念及其优势,还学习了如何安装配置Erlang环境以及简单的Erlang编程方法。希望这些信息能够帮助初学者快速入门Erlang编程。
### Erlang多核编程入门知识点总结 #### 一、Erlang多核编程背景与重要性 - **多核时代的来临**:随着技术的发展,单个芯片内部的...通过学习和掌握Erlang的多核编程技巧,开发者可以更加从容地面对多核时代的挑战。
根据提供的文件信息,这份Erlang编程中文学习手册涵盖了Erlang编程语言的基础知识和一些进阶内容,旨在帮助读者从入门到初中级水平的提升。以下是手册中提到的Erlang编程的相关知识点。 首先,手册介绍了Erlang语言...
Simon St. Laurent的《Introducing Erlang》这本书深入浅出地介绍了这些概念,是学习Erlang的理想起点。通过阅读这本书,读者将能够理解Erlang如何处理并发、分布式计算和故障恢复,从而构建高效、健壮的软件系统。
Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。