管道分为无名管道和有名管道两种管道,管道文件是建立在内存之上可以同时被两个进程访问的文件。
先来说说有名管道:
mkfifo函数创建有名管道,属于系统调用。
在linux操作系统中为实现下述功能,
先创建一个有名管道文件fifo。
再写出两个对管道文件进行操作的程序,一个只读,另外一个只写。
只读:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <fcntl.h>
int main()
{
int fdr=open("./fifo",O_RDONLY);
assert(fdr != -1);
printf("fdr=%d\n",fdr);
while(1)
{
char buff[128]={0};
int n=read(fdr,buff,127);
if(n==0)
{
break;
}