首页 > Erlang并发教程 > 10.6 Erlang并发编程-打开端口
2013
11-19

10.6 Erlang并发编程-打开端口

BACK TOP文章索引

  1. 打开端口
  2. 共3条评论

打开端口

打开端口时可以进行多种设置。BIF open_port(PortName, PortSettings可用于打开端口。PortName可以是:

{spawn, Command}

启动名为Command外部程序或驱动。Erlang驱动在附录E中有所描述。若没有找到名为Command的驱动,则将在Erlang工作空间的外部运行名为Command的外部程序。

Atom

Atom将被认作是外部资源的名称。这样将在Erlang系统和由该原子式命名的资源之间建立一条透明的连接。连接的行为取决于资源的类型。如果Atom表示一个文件,则一条包含文件全部内容的消息会被发送给Erlang系统;向该端口写入发送消息便可向文件写入数据。

{fd, In, Out}

令Erlang进程得以访问任意由Erlang打开的文件描述符。文件描述符In可作为标准输入而Out可作为标准输出。该功能很少使用:只有Erlang操作系统的几种服务(shelluser)需要使用。注意该功能与仅限于UNIX系统。

PortSettings是端口设置的列表。有效的设置有:

{packet, N}

消息的长度将以大端字节序附在消息内容之前的N个字节内。N的有效取值为124

stream

输出的消息不附带消息长度──Erlang进程和外部对象间必须使用某种私有协议。

use_stdio

仅对{spawn, Command}形式的端口有效。令产生的(UNIX)进程使用标准输入输出(即文件标识符01)与Erlang通讯。

nouse_stdio

与上述相反。使用文件描述符34与Erlang通讯。

in

端口仅用于输入。

out

端口仅用于输出。

binary

端口为二进制端口(后续将详述)。

eof

到达文件末尾后端口不会关闭并发送'EXIT'信号,而是保持打开状态并向端口的连接进程发送一条{Port, eof}消息,之后连接进程仍可向端口输出数据。

除了{spawn, Command}类型的端口默认使用use_stdio外,*所有*类型的端口默认都使用stream


10.6 Erlang并发编程-打开端口》有 3 条评论

  1. 只够开销 还买xbox 换国内 只够开销 小霸王都不给买

  2. 只够开销 还买xbox 换国内 只够开销 小霸王都不给买

  3. 乌克兰目前处在地缘政治博弈的前沿,难啊。国土分裂,战火连连,多国军靴进入国境,。。。与1949年前的中国好有一比。这时候需要伟人。

留下一个回复

你的email不会被公开。