Member 13343508 Ответов: 2

Как использовать конвейер в C


Я новичок в СИ, для целей Linux. Попробуйте реализовать трубы, но не поняли, как это сделать.

Что я уже пробовал:

У меня есть следующий код, пытающийся использовать pipe, как его использовать.
#include <stdio.h>
        #include <unistd.h>
        #include <sys/types.h>

        main()
        {
                int     fd[2];
                pid_t   childpid;

                pipe(fd);
 
        }

2 Ответов

Рейтинг:
8

Zahid Mughal

Конвейер в C фактически используется для связи между 2 или более дочерними элементами, производимыми fork. Ваш приведенный выше код должен быть таким, как после реализации каналов.

#include <stdio.h>
        #include <unistd.h>
        #include <sys/types.h>
 
        main()
        {
                int     fd[2];
                pid_t   childpid;
 
                pipe(fd);
               if((childpid = fork()) == -1)
                {
                        perror("fork");
                        exit(1);
                }

                if(childpid == 0)
                {
                        /* Child process closes up input side of pipe */
                        close(fd[0]);
                }
                else
                {
                        /* Parent process closes up output side of pipe */
                        close(fd[1]);
                }

        }


Рейтинг:
1