Можно ли использовать системный вызов linux sendfile() для отправки части файла из одного файла mmaped в другой файл mmaped?
Использование sendfile() для двух файлов mmaped (linux)
Ответы (1)
Из sendfile(2)
:
Presently (Linux 2.6.9): in_fd, must correspond to a file which supports mmap()-like operations (i.e., it cannot be a socket); and out_fd must refer to a socket.
Так что похоже ответ - нет.
Редактировать
Кажется, я понимаю, что вы сейчас ищете. Проверьте splice(2)
.
person
Nikolai Fetissov
schedule
29.03.2010
Но что с более свежими ядрами? mans в linux очень плохо поддерживаются (по сравнению с любым коммерческим unix, линейкой solaris, hpux и т. д.)
- person osgx; 29.03.2010
Я не думаю, что что-то изменилось, надо заглянуть в первоисточник, но вопрос, который я забыл задать - что вы пытаетесь сделать? Вы не можете решить эту проблему с общей памятью? Или это было просто любопытство?
- person Nikolai Fetissov; 29.03.2010
Я хочу сделать нулевую копию. memcpy работает слишком медленно.
- person osgx; 29.03.2010
Если это в том же поле, просто работайте с общими страницами из нескольких процессов. Что-то должно быть записано в память, а затем что-то должно быть считано из нее в любом случае.
- person Nikolai Fetissov; 29.03.2010