Linux FIFO方式

  

FIFOパイプラインはファイルタイプです。Linux上でのFIFOの作成は非常に簡単です。FIFOファイル固有のパイプライン特性がありますが、パイプラインとは若干の違いがあります。そして、あなたが詳細な理解を持つように、詳細な紹介を使います。また、プロセス間通信のためのLinuxシステムであって、名前付きパイプ(名前付きパイプ)と呼ば
ログイン

FIFOは、方法です。

FIFOとパイプの違いは次のとおりです。

FIFOにはファイルシステム内に対応するiノードがあります。これはlsコマンドで確認できます。

sh-3.2#ls -lhF。 /fifo_file

100 prwxrwxrwx 1ルートルート0 1970年1月1日。 /fifo_file |

sh-3.2#

名前が付いているからといって、どのプロセスからもアクセスできます。そのため、2つのプロセス間の通信にFIFOを使用できます。

pipeには名前がなく、既存のファイルシステムでは見ることができません。

親子プロセスや兄弟プロセスなど、血縁関係を持つプロセス間通信にのみ使用できます。

FIFOを作成する方法は次のとおりです。

1. umaskシステムコールを呼び出して、ファイルを作成するためのアクセス権を設定します。

#include "sys /types.h"

#include "sys /stat /h"

mode_t umask(mode_t mask);

2. unlinkシステムコールを呼び出して既存のfifoを削除します。

#include "unistd.h"

int unlink(const char *パス名);

3. mkfifoライブラリ関数を呼び出してFIFOファイルを作成します。

#include sys /types.h》

#include "sys /stat.h"

int mkfifo(const char *パス名、mode_tモード);

またはmknodシステムを呼び出してパラメータモードをS_IFIFOとして呼び出して指定することで、FIFOファイルを作成することもできます。

#include "sys /types.h"

#include "sys /stat.h"

#include《 fcntl.h》

#include "unistd.h"

int mknod(const char *パス名、mode_tモード、dev_t dev);

注意:< Br> 1。通信にFIFOを使用し、転送される各データはPIPE_BUFに制限されるべきです。

2. FIFOへのアクセスは通常のファイルへのアクセスに似ています。オープン/リード/ライト/クローズなどを使用できます。アクセスするためのシステムコールが行われます。

FIFOを使用するアプリケーションは次のとおりです。

1.単純なプロデューサ/コンシューマの問題、1つのプロセスがデータを読み取り、1つのプロセスがデータを書き込みます。

2.クライアント/を実装します。サーバーアーキテクチャープログラム、クライアント、およびサーバーはFIFOを介して通信します。

以上がFIFOパイプライン作成のためのLinuxの紹介ですこの記事では、FIFOパイプライン作成の紹介に加えて、FIFOの使い方とその注意点についても紹介します。

Copyright © Windowsの知識 All Rights Reserved