Ich habe ein Programm, das einige (100) große Dateien mit jeweils 10-100 MB abbildet. Ich brauche sie alle gleichzeitig gemappt.
Im Moment rufe ich an open
gefolgt von mmap
zu Beginn des Programms, gefolgt von munmap
und close
Am Ende.
Oft muss ich das Lauflimit für offene Dateien anpassen ulimit -n
bevor Sie das Programm ausführen.
Die Frage ist, muss ich die Dateien tatsächlich offen halten oder kann ich das? open
mmap
close
tun einige große Datenverarbeitung dann munmap
wenn ich fertig bin.
Die Manpages von mmap
scheinen mir in dieser Hinsicht nicht besonders klar zu sein.
Sie können es in einem Systemaufruf-Trace sehen (z
strace
) einer ausführbaren Datei, dass die Zuordnungen für gemeinsam genutzte Bibliotheken dem Muster folgen: Öffnen Sie den Deskriptor, mmappen Sie ihn, schließen Sie den Deskriptor.– Kas
23. August 2021 um 20:20 Uhr