perl实现linux进程间的通信 perl FIFO的例子

发布时间:2020-09-15编辑:脚本学堂
本文分享一例perl代码,实现linux两个进程间的通信,一个很简单的FIFO的例子,有需要的朋友参考下吧。

本节主要内容:
FIFO应用示例,
linux两个进程间,使用FIFO进行通信.

例子:
 

复制代码 代码示例:

#!/usr/bin/perl -w
#
#site: www.jb200.com

my $cmd_ff = "./ffmpeg -i ....";

my $uuid = `uuidgen`;         // 生成不重名FIFO的名称
chomp $uuid;
system("mkfifo $uuid");       // 创建FIFO

my $pid_ffmpeg = fork;        // 创建进程
if (0 == $pid_ffmpeg)
{
  // 子进程
  open(STDERR, ">", $uuid);   // 将STDERR重定向到FIFO
  exec($cmd_ff);              // 启动ffmpeg, 它的STDERR都输出到FIFO
}
else
{
  // 主进程
  $/="r";                   
  $|++;
  open my $fh, "<", $uuid;    // 以FIFO为输入,并定位其到变量$fh
  while(<$fh>)                // 每次读取一行
  {
    // 处理每行的数据
  }
}