Использование `соединения `для Linux… что еще для других систем?

В последних ядрах Linux, на самом деле, самый быстрый способ скопировать файл или подмножество файла в другой файл — это использовать очень хороший системный вызов splice. Эта система позволяет ядру управлять передачей (почти )напрямую, без необходимости копировать данные в пользовательскую память.

Теперь мне было бы интересно найти что-то подобное для других систем, в частности для Windows и BSD/MacOS X. (Я готов написать код на Obj. -C в маловероятном случае наличия API к которому нельзя получить доступ из необработанного C ).

Спасибо

Примечание Я предполагаю, что самая быстрая полная -копия файла под Windows CopyFile. Но как насчет копирования только диапазона файла?

Примечание Я работаю над кодом, который одновременно -чувствителен к производительности и должен работать на различных запоминающих устройствах (, т. е. от смартфонов Android до устройств NFS ). Я, конечно, готов написать разные реализации для разных ОС.

Примечание В настоящее время я использую spliceпод Linux/Android, copyfileпод BSD/Mac OS X, CopyFileпод Windows и откат к read/ writeдля диапазонов в файлы.

5
задан Yoric 15 May 2012 в 12:52
поделиться