ファイル全体の「ビュー」を生成するLinuxシステムコールはありますか?

ファイル全体の「ビュー」を生成するLinuxシステムコールはありますか?

Linuxは、バックアップファイルの限られたバイト範囲の「ビュー」を生成するためのシステムコールを提供しますか?たとえば、私が想像しているのは、開かれたファイル記述子に対して機能し、それを変更するか、範囲の始まりに基づいてファイルオフセットを設定し、範囲の終わりに終わる新しいファイル記述子を生成することです。

ユースケースは、非協調サブプロセスが入力ファイルの特定の部分にのみアクセスするように制限することです。

答え1

1つの方法はループデバイスを使用することです。このアプローチには、使いやすさが低下する可能性がある2つの要件があります。これを設定するにはルートが必要で、非協力サブプロセスはブロックデバイスに書き込むことができる必要があります。ああ、クラッシュする変更を処理しません。

ループデバイスを設定するには:

losetup -o 1024 --sizelimit 2048 --show -f yourfile

10242048およびyourfileを適切な値に置き換えます-o。開始オフセット、--sizelimitサイズ(オフセットから計算)を指定します。sizelimit512の倍数でなければなりません。

これにより、設定されたループデバイスの名前が出力されます。必要に応じて権限を調整し、非協力サブプロセスに権限を付与します。必要がなくなったら、デバイスを取り外します。

losetup -d /dev/loopN

N適切に交換してください。

関連情報