#include<unistd.h>#include<stdio.h>#include<stdlib.h>#include<errno.h>intmain(void){intfd[2];//文件描述符charwritebuf[]="thisisatest!\n";//写缓冲区charreadbuf[20];//读缓冲区if((pipe(fd))<0)//创建管道{printf("创建管道失败!\n");exit(0);}write(fd[1],writebuf,sizeof(writebuf));//向管道写入端写入数据read(fd[0],readbuf,sizeof(writebuf));//从管道读出端读出数据printf("%s",readbuf);//输出字符串printf("管道的读fd是%d,管道的写fd是%d\n",fd[0],fd[1]);//打印管道描述符close(fd[0]);//关闭管道的读出端文件描述符close(fd[1]);//关闭管道的写入端文件描述符return0;}