У меня есть дескриптор файла, который может быть получен из сокета, канала или реального файла, из которого можно прочитать. У меня есть еще один файловый дескриптор (опять же, он может представлять собой сокет или реальный файл), в который можно производить запись. Мне нужно передать данные от одного к другому как можно быстрее.
В настоящее время я не знаю другого способа сделать это, кроме как выбрать произвольный размер буфера и прочитать его с самого начала. дескриптор, а затем записать его во второй дескриптор (что может потребовать цикла, если он не может записать все, что было прочитано за один раз). Вместо этого я хотел бы иметь возможность сказать: «прочитать из этого файлового дескриптора и поместить данные непосредственно в этот файловый дескриптор, без промежуточного буфера» — или, еще лучше, «прочитать из этого файловый дескриптор, пока он не достигнет EOF, и поместите все это непосредственно в этот файловый дескриптор, как можно быстрее». Мне кажется, что должен быть способ сделать это без обхода пользовательского пространства и оплаты копирования данных из буферов ядра, а затем снова обратно в буферы ядра, но я не могу найдите такой способ, и каждая фраза, которую я придумываю для поиска в Google, просто приводит меня к материалам о каналах оболочки UNIX. Есть ли способ сделать это, или я просто застрял?
Подробнее здесь: https://stackoverflow.com/questions/786 ... r-to-a-wri
POSIX или специфичный для Linux метод подключения читаемого файлового дескриптора к записываемому файловому дескриптору? ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение