LINUX.ORG.RU

Копирование файлов

 


0

1

Я смотрел код mc, касающийся копирования файлов. Так вот, копирование реализовано через стандартные read/write, а не через прогрессивный sendfile.

Почему бы в mc не запилить поддержку sendfile(2)? Для ядер, в которых он не поддерживается, можно использовать стандартную комбинацию read/write. А наличие sendfile проверять один раз при инициализации.

★★★★★

Последнее исправление: ttnl (всего исправлений: 2)
Ответ на: комментарий от tailgunner

Нет, он не умеет этого. Но read() и write() из самых своих дебрей выбраться тоже не могут. Т.е. с одной стороны они реагируют на сигналы, с другой — может попасться такая ситуация, что реагировать они не будут.

mc копирует фиксированные блоки по 8KB, есть подозрение, что при таких значениях разницы в отзывчивости практически не будет. Все это нужно еще протестировать, конечно.

cp читает размер блока из inode.

ttnl ★★★★★
() автор топика
Ответ на: комментарий от ttnl

может попасться такая ситуация, что реагировать они не будут.

с read/write _может_ попасться, а с sendfile - это по-определению так.

dikiy ★★☆☆☆
()

Это какой-то новый сисвызов?

Anon
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.