Stellt Linux einen Systemaufruf bereit, mit dem eine "Ansicht" eines begrenzten Bytebereichs einer Sicherungsdatei erstellt werden kann? Ich stelle mir etwas vor, das beispielsweise auf einen geöffneten Dateideskriptor einwirkt und diesen entweder ändert oder einen neuen Dateideskriptor generiert, bei dem sich die Dateiversätze relativ zum Anfang des Bereichs und zum Ende des Bereichs befinden.
Der Anwendungsfall wäre, einen nicht kooperierenden Unterprozess darauf zu beschränken, nur auf einen bestimmten Teil einer Eingabedatei zuzugreifen.
linux
files
filesystems
llasram
quelle
quelle
splice()
scheint eine Pipe plus der Systemaufruf fast richtig für den Stream-Fall zu sein.mmap()
Aufruf ein, solange derAntworten:
Eine Möglichkeit, dies zu tun, besteht darin, ein Schleifengerät zu verwenden. Dieser Ansatz hat zwei Anforderungen, die ihn möglicherweise weniger nützlich machen: Sie müssen root sein, um ihn einzurichten, und der nicht kooperierende Unterprozess muss in der Lage sein, auf ein Blockgerät zu schreiben. Oh, und es geht nicht um widersprüchliche Veränderungen.
Führen Sie aus, um das Loop-Gerät einzurichten
ersetzt
1024
,2048
undyourfile
mit entsprechenden Werten --o
Gibt die Startoffset,--sizelimit
die Größe (zählend vom Offset). Beachten Sie, dasssizelimit
dies ein Vielfaches von 512 sein muss.Dadurch wird der Name des eingerichteten Schleifengeräts ausgegeben. Passen Sie die Berechtigungen nach Bedarf an und geben Sie sie an Ihren nicht kooperierenden Unterprozess weiter. Wenn Sie das Gerät nicht mehr benötigen, löschen Sie es mit
N
gegebenenfalls ersetzen .quelle