Ich habe ein Problem mit einem meiner Projekte.
Ich habe versucht, ein gut dokumentiertes Beispiel für die Verwendung von Shared Memory zu finden, fork()
aber ohne Erfolg.
Grundsätzlich ist das Szenario ist , dass , wenn der Benutzer das Programm startet, muss ich im gemeinsam genutzten Speicher zwei Werte speichern: current_path die einen ist char * und ein datei_name die auch char * .
In Abhängigkeit von den Befehlsargumenten, wird ein neuer Prozess beginnt mit fork()
und dieser Prozess lesen muss und ändern Sie die current_path Variable im gemeinsam genutzten Speicher gespeichert , während die datei_name Variable nur gelesen wird.
Gibt es ein gutes Tutorial zum gemeinsamen Speicher mit Beispielcode (falls möglich), zu dem Sie mich weiterleiten können?
shmget()
et al. und auch der reine mmap()
Ansatz mit MAP_ANON
(aka MAP_ANONYMOUS
) - obwohl MAP_ANON
nicht von POSIX definiert. Es gibt auch POSIX shm_open()
und shm_close()
zum Verwalten von gemeinsam genutzten Speicherobjekten. [… Fortsetzung…]
shm_unlink()
), wohingegen Mechanismen, mmap()
die eine Datei verwenden , eine Datei erfordern und MAP_SHARED
bestehen bleiben die Daten (und MAP_ANON
schließt die Persistenz aus). Es gibt ein vollständiges Beispiel im Abschnitt "Begründung" der Spezifikation von shm_open()
.