第12章 接口技术
1. @spec open_port(PortName, [Opt]) -> Port
PortName是下列内容之一
{spawn, Command} 启动一个外部程序,Command是外部程序的名字。除非它是一个Erlang运行时可以找到的内联驱动程序,否则Command所指定的程序会运行在Erlang运行时系统这外的系统进程里。
{fd, In, Out} 允许Erlang进程去访问任何一个已经由Erlang打开的文件描述符。In可以用来发送数据到标准输入,Out可以用来接收通过标准输出发送的数据。
Opt是下列内容之一
{packet, N}数据凶会以N(N应该是1,2,4之一,分别代表8位,16位,32位的整数)字节长度的数据作为包的长度计数。
{steam}发送的消息不含数据包的长度数据。使用这个参数的应用程序必须知道如何去处理这些包。
{line, Max}发送的消息基于行。如果一行数据超过Max指定的字节数,那么这一行就会在Max指定的位置分拆为两行。
{cd, Dir}只对{spawn, Command}参数有效。它表明外部程序会在Dir指定的目录中启动。
{env, Env}只对{spawn, Command}参数有效。外部程序的环境可以通过列表Env中的环境变量来扩展。Env是一个由形如{VarName, Value}的数据构成的列表,其中的VarName和Value都是字符串。
2. 创建端口的那个进程被称为端口连接进程。
3. 一个端口的通信由:端口连接进程,端口和外部程序组成。
4. 在创建Port时,erlang会自动启动外部程序并与之连接,外部程序的标准输出和标准输入会指向erlang。
5. 一个端口其实就是一个Erlang进程。可以向它发送下列命令(PidC是端口连接
《Erlang程序设计》学习笔记-第12章 接口技术
最新推荐文章于 2024-05-03 11:26:44 发布