一. pipe():创建命名管道,与 linux c 系统调用一样。
格式: pipe(READ,WRITE);
pipe创建两个连接的句柄,一个读,一个写,任何写入到writer的都可以从reader中读出。
实 例:pipe(README,WRITEME); #创建了一个管道对,"README"用于读,"WRITEME"用于写。
$aaa=pipe(AAA,BBB); #创建了一个管道对,"AAA"用于读,"BBB"用于写,$aaa变量为调用pipe()的返回值。
讲解:正常调用后返回值为非零数,第一个参数为被创建的读管道,第二个参数为被创建的写管道。此函数通常配合进程中 的fork()函数一同使用,步骤是先使用pipe()函 数建立管道对,再使用fork()创建新进程,在不同的进程关闭不同的管道,这样就可以达到管道间通信的目的了。
二. close(): 关闭命名管道
格式: close(AAA);
close BBB;
注:close()在调用时能将子程序的终止代码放到特殊变量$?中;当关闭的是写管道时close()调用将进入堵塞状态直至另一端完成它的 全部工作为止。
三. 读写管道与普通文件相同
注:
1.@_ 是函数传参时放置参数的数组,可以从中取实参,
比如 my($para1,$para2...)=@_, 函数调用时填了几个参数,便可以从该数组中取到几个参数。
2.$_ 是默认参数的意思,指的是在不指定的情况下,程序处理的上一个变量,比如
open(IN,"<file.txt")
while(<IN>)
{
print $_;
}
close(IN);
这个例子是打开一个文本文件,读取每一行,在没有指定参数的情况下,$_当时指向了从文件中读取的每一行。