管道的应用
Posted 吾乃世间奇才
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管道的应用相关的知识,希望对你有一定的参考价值。
#include<string.h>
#include<stdlib.h>
#include<errno.h>
#include<assert.h>
#include<stdio.h>
#include<sys/wait.h>
#include<sys/types.h>
#include<unistd.h>
#define BUFFER_SIZE (32)
int main()
int fd[2]=0,0;
pid_t child_pid;
int pipe_ret=pipe(fd);
if(pipe_ret)
printf("error pipe\\n");
child_pid=fork();
if(child_pid < 0)
printf("error fork\\n");
else if (child_pid==0)
//child
close(fd[0]);
char child_buffer[BUFFER_SIZE];
sprintf(child_buffer, "%s", "Hello World!");
write(fd[1],child_buffer, strlen(child_buffer) + 1);
sleep(1);
sprintf(child_buffer, "%s", "Linux Programming");
write(fd[1],child_buffer, strlen(child_buffer) + 1);
close(fd[1]);
else
//father
close(fd[1]);
int i;
char father_buffer[BUFFER_SIZE];
ssize_t read_size;
for(i=0; i < 2; i++)
memset(father_buffer, 0, sizeof(father_buffer));
read_size=read(fd[0],father_buffer,BUFFER_SIZE-1);
printf("%s The length should be %ld.\\n", father_buffer, strlen(father_buffer));
close(fd[0]);
return 0;
以上是关于管道的应用的主要内容,如果未能解决你的问题,请参考以下文章
为合并请求触发的管道运行应用 GitLab CI/CD 管道更改