pipe:
#include <unistd.h>
int pipe(int pipefd[2]);
创建一个管道,一个单向数据通道。pipefd[0]表示管道的读取端。pipefd[1]是指管道的写端。
read:
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
简单来说就是从文件描述符fd中读取count字符给buf
write():
跟read是一样的道理。
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(void)
{
int fd[2];
int ret;
pid_t pid;
ret = pipe(fd);
if(ret == -1)
{
perror("Error");
}
pid = fork();
if(pid == -1)
{
perror("Error");
}
else if(pid == 0)
{
char ch[2];
close(fd[1]); //关闭写通道
while(1)
{
read(fd[0], ch ,2);
printf("read from pipe: %s\n",ch);
}
}
else
{
close(fd[0]);//关闭读管道
sleep(5);
write(fd[1], "xyabdc", 6);
waitpid(pid, NULL, 0);
}
return 0;
}
版权声明:本文为qq_44957435原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。