第一步创建管道文件:fifo.c
#include<stdio.h>
#include<stdlib.h>
#define PATH "/home/bencai/4-4/swap"
int main(int *argc,char **argv)
{
int ret;
ret=mkfifo(PATH,0644);
if(ret!=0)
{
printf("创建管道失败!\n");
exit(1);
}
printf("创建管道成功!\n");
return 0;
}
///////////////////////////////////////////////////////////////////
打开终端:
执行fifo文件,生成swap。
注意:第一执行成功后,如果再次执行,会显示创建失败,是因为4-4目录中已经有swap文件了。
/////////////////////////////////////////////////////////////////////
第二步,创建read.c文件:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>//调用open()函数需要该头文件
#define PATH "/home/bencai/4-4/swap"
#define SIZE 128
int main(int *argc,char **argv)
{
int fd=-1;
printf("开始接收信息……\n");
for(;;)
{
fd=open(PATH,O_RDONLY);//打开管道文件
//printf("fd=%d\n",fd);
if(fd==-1)
{
printf("OPEN error!\n");
exit(1);
}
int ret;
char c,buffer[SIZE];
memset(buffer,'\0',sizeof(buffer));//清零操作
ret=read(fd,buffer,sizeof(buffer));//读取管道传送的内容
printf("接收到的信息为:%s\n",buffer);
//fd=0;
}
return 0;
}
///////////////////////////////////////////////////
第三步,创建write.c文件:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>//调用open()函数需要该头文件
#define PATH "/home/bencai/4-4/swap"
#define SIZE 128
int main(int *argc,char **argv)
{
int fd=-1;
fd=open(PATH,O_WRONLY);//打开管道文件
if(fd==-1)
{
printf("OPEN error!\n");
exit(1);
}
printf("\n");
int ret;
char c,buffer[SIZE];
do
{
memset(buffer,'\0',strlen(buffer));//清零操作
scanf("%s",buffer);
ret=write(fd,buffer,strlen(buffer));//将输入的内容存放到butffer中
printf("发送的信息为:%s\n",buffer);
if(ret!=1)
printf("发送信息成功!\n");
c=getchar();
}while((c=getchar())!='N');
return 0;
}
/////////////////////////////////////////////////////
打开两个终端,一个执行read,一个执行write:
(文章仅用于学习交流,欢迎转载,转载请注明来源http://hi.baidu.com/bzlixinhui)