我正在尝试编写一个程序,以便父进程和子进程可以在彼此之间来回通信。父进程和子进程应打印1-100之间的值,其中每个进程打印每次将其值加1的值。现在我面临的问题是,我对管道一无所知。我从在线阅读材料中学到的是,我可以使用管道来读取和写入值。我利用它来在子进程中打印某些内容,然后将其发送回父进程。现在,我不确定如何为自己打印后让父母返回孩子?我知道我的代码可能全错了,但是我真的不确定应该怎么做。

#include <sys/wait.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

int main(int argc, const char * argv[]) {
    int fd[2];
    if (pipe(fd)== -1){
        printf("An error occured while opening the pipe\n");
    }
    int id  = fork();
    int i = 0;
    if (id == 0){
        close(fd[0]);
        printf("In child: %d", i);
        i ++;
        write(fd[1], &i, sizeof(int));
        close(fd[1]);
    } else {
        wait(NULL);
        close(fd[1]);
        int y;
        read(fd[0],&y, sizeof(int));
        close(fd[0]);
       
    }
}