Двое детей читают поочередно слова в C, используя open() и read()

У меня проблема с чтением из двух входных файлов с двумя детьми. Два ребенка должны поочередно читать слова из каждого файла, отправляя их родителю, который будет выводить их следующим образом:

input1: "Я действительно"

input2: "я тупой"

вывод: "Я действительно тупой"

Как я могу сделать это, используя функции open (для открытия входного файла для чтения) и чтения? Функция "сын" для детей (для детей будет две аналогичные функции: одна для чтения четных слов и другая для чтения нечетных слов) должна выглядеть примерно так:

void son(char i_file, int p[2], int bro_pid){
    int c,fd=open("i_file", O_RDONLY, S_IWUSR);
    char buf;
    if(fd > 0){
        close(p[0]);
        while(c=read(i_file, buf, 1) == 1){   //Here should be a conditions to continue reading till EOF
            ....                 //I need your help here
            ....                
            write(p[1], buf, c); //Here i write in the pipe the word for the parent
            while(1){
                pause();         //The child will wait a signal from the parent before reading the next word
                break;          
            }
        }
    }else
        perror("Error opening file secondo figlio");
    close(fd);
    close(p[1]);
}

Можете ли вы помочь мне с этой проблемой? Заранее спасибо за помощь.

РЕДАКТИРОВАТЬ: я неправильно прочитал упражнение, есть два разных входных файла.

0 ответов

Другие вопросы по тегам