13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

close FROM_PARENT; close TO_PARENT;exit;}在 许 多 Unix 系 统 上 , 你 实 际 上 不 必 用 两 次 独 立 的 pipe 调 用 来 实 现 父 子 进 程 之 间 的 全 双工 的 通 讯 。socketpair 系 统 调 用 给 在 同 一 台 机 器 上 的 相 关 进 程 提 供 了 双 向 的 联 接 。 所 以 ,除 了 用 两 个 pipe 以 外 , 你 还 可 以 只 用 一 个 socketpair。use Socket;socketpair(Child, Parent,AF_UNIX, SOCK_STREAM, PF_UNSPEC)or die "socketpair: $!";# 或 者 让 perl 给 你 选 择 文 件 句 柄my ($kidfh, $dadfh);socketpair($kidfh, $dadfh, AF_UNIX, SOCK_STREAM, PF_UNSPEC)or die "socketpair: $!";在 fork 之 后 , 父 进 程 关 闭 Parent 句 柄 , 然 后 通 过 Child 句 柄 读 写 。 同 时 子 进 程 关 闭Child 句 柄 , 然 后 通 过 Parent 句 柄 读 写 。如 果 你 正 在 寻 找 双 向 通 讯 的 方 法 , 而 且 是 因 为 你 准 备 交 流 的 对 方 实 现 了 标 准 的 互 联 网 服 务 ,那 么 你 通 常 应 该 先 忽 略 这 些 中 间 人 并 且 使 用 专 为 那 些 目 的 设 计 的 CPAN 模 块 。( 参 阅 本 章稍 后 “ 套 接 字 ” 节 获 取 它 们 的 列 表 。)16.3.4 命 名 管 道一 个 命 名 管 道 ( 通 常 称 做 FIFO) 是 为 同 一 台 机 器 上 不 相 关 的 进 程 之 间 建 立 交 流 的 机 制 。“ 命名 ” 管 道 的 名 字 存 在 于 文 件 系 统 中 , 实 际 上 就 是 在 文 件 系 统 的 名 字 空 间 中 放 一 个 特 殊 的 文 件 ,而 在 文 件 背 后 不 是 磁 盘 , 而 是 另 外 一 个 进 程 ( 注 : 你 可 以 对 Unix 域 套 接 字 干 一 样 的 事 情 ,不 过 你 不 能 对 它 们 用 open)。 命 名 管 道 只 不 过 是 一 个 有 趣 的 叫 法 而 已 。434

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!