Memo, wenn es in mehreren Prozessen exklusiv ist, wenn sich die Ausführungsdatei in der C-Sprache unterscheidet
Wenn Sie sich nicht zu sehr darum kümmern, war der in shmget verwendete Schlüssel IPC_PRIVATE, aber in mehreren Prozessen wird für jeden ein gemeinsamer Speicher erstellt. In diesem Zustand funktioniert Fork nach dem Erstellen von Mutex gut, aber wenn die ausführbare Datei anders ist, kann sie nicht gut ausgeschlossen werden.
Durch Angabe des Schlüssels mit shmget kann daher derselbe gemeinsam genutzte Speicher für eine andere ausführbare Datei verwendet werden.
ftok erstellt einen Schlüssel mit einem vorhandenen Dateipfad und einer proj_id größer oder gleich 0.
Verwenden Sie den erstellten Schlüssel zum Shmget.
Wenn IPC_CREAT | IPC_EXCL angegeben ist, wird der gemeinsam genutzte Speicher für den Schlüssel erstellt, wenn er nicht vorhanden ist, und ein Fehler tritt auf, wenn er bereits vorhanden ist. Auf diese Weise kann festgelegt werden, ob die nachfolgende initialisierungsbezogene Verarbeitung durchgeführt werden soll oder nicht.
Erstellen Sie wie gewohnt ein Mutex-Objekt.
Bei Bedarf wie gewohnt sperren / entsperren.
Recommended Posts