Я прочитал это о каналах, и я действительно не уверен, что это значит "возвращает два файловых дескриптора, один из которых относится к концу чтения канала, другой относится к концу записи ".
Изображение, которое у меня есть в голове, выглядит следующим образом: если буфер в канале представляет собой небольшую область памяти, дескриптор файла записи указывает на начало этой области, а дескриптор файла чтения указывает до конца этого региона. Часть, которая сбивает с толку мою, - факт, что у трубы есть два конца. Образно говоря, труба имеет два конца, но я не понимаю, как и почему вы читаете что-то, что указывает на конец.
Если дескриптор файла записи указывает на конец, вместо этого выполняется запись в буфер, который должен принять указатель на конец, сдвинуть назад на несколько пробелов в зависимости от размера записываемых данных и записать в него новая должность?