在C中的学习,linux 进程间的通信

管道是最简单的进程间通信的方法,实现父子进程间的通信;

管道分为全双工,和半双工的,全双工的又程命名管道....FIFO

下面试一个简单管道实现。

下面是给出一个简单的实现,在linux2.6 内核编译运行正确

#include<unistd.h>
#include<stdio.h>
#define MAXLINE 4096
int main()
{
int n;
int fd[2];
pid_t pid;
char line[MAXLINE];
if(pipe(fd) < 0)
{
   perror("pipe error:");
   return 0;
}
if((pid = fork()) < 0)
{
   perror("fork error:");
   return 0;
}
else if(pid > 0)
{
   sleep(1);
   close(fd[0]);
   write(fd[1],"hello world/n",13);
}else
{
   close(fd[1]);
   close(fd[0]);
   n = read(fd[0],line,MAXLINE);
   write(1,line,n);
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值