13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

}}下 面 是 ShMem ? 包 , 就 是 上 面 程 序 用 的 东 西 。 你 可 以 把 它 直 接 贴 到 程 序 的 末 尾 , 或 者 把它 放 到 自 己 的 文 件 里 ,( 在 结 尾 放 一 个 "1;") 然 后 在 主 程 序 里 require 它 。( 用 到 的 这 两个 IPC 模 块 以 后 会 在 标 准 的 <strong>Perl</strong> 版 本 里 找 到 。)package ShMem;use IPC::SysV qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU);use IPC::Semaphore;sub MAXBUF() { 2000 }sub alloc {# 构 造 方 法my $class = shift;my $value = @_ ? shift : ' ';my $key = shmget(IPC_PRIVATE, MAXBUF, S_IRWXU) or die "shmget: $!";my $sem = IPC::Semaphore->new(IPC_PRIVATE, 1, S_IRWXU| IPC_CREAT)or die "IPC::Semaphore->new: $!";$sem->setval(0,1) or die "sem setval: $!";my $self = bless {OWNER => $$,SHMKEY => $key,SEMA => $sem,} => $class;439

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

Saved successfully!

Ooh no, something went wrong!