【PHP8.x】posix_mkfifo関数の使い方

作成日: 更新日:

posix_mkfifo関数は、UNIX系オペレーティングシステムにおいて、プロセス間でデータをやり取りするための「名前付きパイプ」(FIFO: First-In, First-Out)を作成する関数です。名前付きパイプは、通常のファイルとは異なり、ディスク上にデータを永続的に保存するのではなく、複数のプロセスが互いに通信するための特殊なファイルインターフェースとして機能します。この関数は、最初の引数として作成する名前付きパイプのパスを文字列で指定し、第二引数としてそのパイプのアクセス権限(パーミッション)を整数値で指定します。パーミッションは、他のファイルと同様に、例えば0644のように8進数で指定することが一般的です。posix_mkfifo関数は、名前付きパイプの作成に成功した場合にtrueを返し、失敗した場合にはfalseを返します。失敗の例としては、指定されたパスにすでにファイルが存在する場合や、十分な権限がない場合が挙げられます。これにより、PHPアプリケーションから、関連性のない異なるプロセス間でデータの送受信を行うための経路を確立できます。関数がfalseを返した際には、エラー処理を行うことが重要です。

基本的な使い方

構文(syntax)

<?php
$fifoPath = '/tmp/my_php_fifo';
$permissions = 0644;

if (posix_mkfifo($fifoPath, $permissions)) {
    echo "FIFOスペシャルファイル '{$fifoPath}' が作成されました。\n";
} else {
    echo "FIFOスペシャルファイル '{$fifoPath}' の作成に失敗しました。\n";
}
?>

引数(parameters)

string $filename, int $permissions

  • string $filename: 作成するFIFO(名前付きパイプ)のパスを指定する文字列
  • int $permissions: FIFOのパーミッションを指定する整数(0から0777の範囲)

戻り値(return)

bool

名前付きパイプ(FIFO)を作成し、成功した場合は true を、失敗した場合は false を返します。

【PHP8.x】posix_mkfifo関数の使い方 | いっしー@Webエンジニア