ディスクファイルの場合のように、可能な場合に真のファイル記述子クローンメカニズムがないのはなぜですか。
POSIX:
これらのシステム コールの 1 つから正常に戻った後、古いファイル記述子と新しいファイル記述子を交換可能に使用できます。これらは同じオープン ファイル記述 (open(2) を参照) を参照するため、ファイル オフセットとファイル ステータス フラグを共有します。たとえば、記述子の 1 つで lseek(2) を使用してファイル オフセットを変更すると、もう一方のオフセットも変更されます。
ウィンドウズ:
複製ハンドルは、元のハンドルと同じオブジェクトを参照します。したがって、オブジェクトへの変更は両方のハンドルを介して反映されます。たとえば、ファイル ハンドルを複製した場合、現在のファイル位置は両方のハンドルで常に同じになります。ファイル ハンドルが異なるファイル位置を持つようにするには、CreateFile 関数を使用して、同じファイルへのアクセスを共有するファイル ハンドルを作成します。
クローン プリミティブを使用する理由:
ファイル アーカイブを操作する場合、アーカイブ内の各ファイルに個別にアクセスできる必要があります。ファイル アーカイブは、仮想ファイル システムのように動作する必要があります。
ファイルタイプのチェック。ファイル オフセットのクローンを作成できるため、元の位置に影響を与えることなく、ファイルのごく一部を読み取ることができます。