linux 进程间传递信息,Linux下创建管道文件,并实现两个进程间的信息传递。

第一步创建管道文件:fifo.c

#include

#include

#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

#include

#include

#include//调用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

#include

#include

#include//调用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:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

(文章仅用于学习交流,欢迎转载,转载请注明来源http://hi.baidu.com/bzlixinhui)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值