概述
linux系统编程——管道编程实战
一、查看man手册
man 2 pipe
fork以后,父进程会拷贝一个空间给子进程,包括fd,父子进程的管道为同一个管道。
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int
main()
{
int
fd[2];
int
pid;//定义管道
char buf[128];//缓冲区
// int pipe(int pipefd[2]);
if(pipe(fd)==-1)//创建管道
{
printf("creat
pipe failedn");
}
pid=fork();//创建管道,调用子进程
if(pid<0)
{
printf("creat
child failedn");
}
else
if(pid>0)
{
sleep(3);
printf("this is fathern");
close(fd[0]);
write(fd[1],"hello from father",strlen("hello
from father"));
wait();
//写入管道时,关闭fd[0]
}
else
{
printf("this is childn");
close(fd[1]);
read(fd[0],buf,128);
printf("read from father:%sn",buf);
exit(0);
//读入管道时,关闭fd[1]。
}
return 0;
}
父进程睡眠3秒,先让子进程运行
——@上官可编程
最后
以上就是飞快狗为你收集整理的linux系统编程——管道编程实战linux系统编程——管道编程实战的全部内容,希望文章能够帮你解决linux系统编程——管道编程实战linux系统编程——管道编程实战所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复