Linuxプロセス通信FIFO
1701 ワード
Linuxプロセス通信FIFO
FIFOは有名なパイプとも呼ばれ、ファイルシステムで見られるファイルタイプです.プログラムでファイルstat構造のst_を表示できますmodeメンバーの値は、ファイルがFIFOファイルであるかどうかを判断します.FIFOファイルを作成するのはファイルを作成するのと同じで、FIFOファイルは普通のファイルのようです
FIFOでは、無関係プロセス間のデータ交換の要件をうまく解決することができ、ファイルシステムに存在するため、匿名パイプよりも持続的に安定した通信方法を提供する.
.
FIFOの通信方式は、プロセスでファイルを使用してデータを伝送するのと同様であるが、FIFOタイプのファイルはパイプの特性を同時に有する.データ読み出し時に、FIFO配管で同時にデータをクリアします.shellではmkfifoコマンドで有名なパイプを構築できます.
次に、FIFOを理解するための例を示す。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "clist.h"
#include "clist.c"
int main(int argc, char *argv[])
{
if(mkfifo(argv[1], 0666) == -1)
{
if(EEXIST == errno)
goto l;
else
{
perror("mkfifo");
exit(-1);
}
}
l;
int my_fd;
my_fd=open(argv[1], O_RDONLY);
if(NULL == my_fd)
{
perror("open");
exit(-1);
}
int my_service;
my_service=open(argv[1],O_RDONLY);
if(NULL == my_service)
{
perror("my_service");
exit(-1);
}
void *fun(void * a)
{
;
}
head_online=
pthread_t pid;
if(pthread_create(&pid, NULL, fun, &my_fd) < 0)
{
perror("pthread_creat");
exit(-1);
}
MSG buf;
sprintf(buf, "hello!");
write(my_service, buf, sizeof buf);
}
私はプログラマーが好きで、彼らは単純で、頑固で、達成感を体得しやすいです.プレッシャーに直面して、明かりを選んで夜戦して眠らないことができます;困難に直面して、困難を迎えて自分に挑戦することができます.彼らも困惑し、彷徨うだろうが、プログラマーの心の中にはビル・ゲイツやジョブズの夢がある.「知恵で自分の事業を切り開く」.私が言いたいのは、実は私はプログラマーです.
syw_selfimpr新浪微博アドレス:http://weibo.com/u/2945271402
もし本文があなたに役に立つと思ったら、「トップ」をクリックして支持してください.あなたの支持は私の書く最大の動力です.ありがとうございます.