スポンサーリンク

名前付きパイプ(FIFO)は、プロセス間通信(IPC)の1つです。
ファイル名を利用し、他プロセスと通信することが可能です。

名前付きパイプを作成するには、POSIX::mkfifo()を使います。


サンプルコード

mkfifoで名前付きパイプを作成します。
fork()して、子プロセスから名前付きパイプに書込を行います。
親プロセスは名前付きパイプを読み込みモードで開き、読み込みを行います。

#!/usr/local/bin/perl -w
use strict;

sub main {
	my $path = '/tmp/foo.fifo';
	my $mode = 0600;
	if (-p $path) {
		unlink $path;
	}
	use POSIX;
	if(! mkfifo($path, $mode) ) {
		die "can not mkfifo(${path}, ${mode}): $!";
	}

	my $pid = fork();
	if ($pid ==0) {
		open(FIFO, "> ${path}")
		or die "can not open ${path}: $!";
		print FIFO "foo\n";
		print FIFO "bar\n";
		close(FIFO);
		exit;
	}
	open(FIFO, "< ${path}")
	or die "can not open ${path}: $!";
	while(<FIFO>) {
		print;
	}

	wait;
	close(FIFO);
	unlink $path;
	exit (0);
}
& main;
参照しているページ (サイト内): [2009-04-27-1] [2008-08-25-1] [2008-08-24-2] [2008-08-24-1]

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー