Linuxは、バッキングファイルの限られたバイト範囲の「ビュー」を作成できるシステムコールを提供していますか?たとえば、開いているファイル記述子に作用し、それを変更するか、ファイルオフセットが範囲の先頭からの相対で、範囲の末尾で終了する新しいファイル記述子を生成するものを想定しています。
使用例は、協調しないサブプロセスを入力ファイルの特定の部分のみにアクセスするように制限することです。
これを行う1つの方法は、ループデバイスを使用することです。このアプローチには2つの要件があり、あまり役に立たない可能性があります。それを設定するにはrootである必要があり、非協調サブプロセスはブロックデバイスに書き込みできる必要があります。ああ、それは相反する変更には対応していません。
ループデバイスを設定するには、次のコマンドを実行します。
losetup -o 1024 --sizelimit 2048 --show -f yourfile
1024
、2048
、yourfile
を適切な値に置き換えます— -o
は開始オフセットを指定し、--sizelimit
はサイズ(オフセットから数えます)を指定します。 sizelimit
は512の倍数でなければならないことに注意してください。
これは、セットアップされたループデバイスの名前を出力します。必要に応じて権限を調整し、非協力サブプロセスに付与します。デバイスが不要になった場合は、
losetup -d /dev/loopN
N
を適宜置き換えます。