正確には、スパース ファイルの穴と、ターゲット ファイル システムがそれらをサポートしていない、または完全にサポートしていない状況をキャッチするすべての拡張属性 (異なる EA の長さなど) を保持することを意味しますか? また、マウントされた NTFS ファイルシステムでは、代替ストリームでも動作するはずです。できるだけ多くのファイル属性を保持します。
プログレス GUI のコールバックも必要です。これはメンテナンス地獄のようで難しそうなので、Windows の SHFileOperation のように既に使用可能なものがあると思います。
私は GLIB を調べましたが、オープン/読み取り/書き込み/クローズのシーケンスで最も簡単な方法でそれを行っています。