C ++ 11 Interprozess Atomics und Mutexe

Ich habe ein Linux-Programm, das mehrere Prozesse erzeugt (Fork) und über POSIX Shared Memory kommuniziert. Ich möchte, dass jedem Prozess eine ID (0-255) zugewiesen wird. Meine Absicht ist es, einen Bitvektor im gemeinsam genutzten Speicherbereich (initialisiert auf Null) zu platzieren und ein Bit atomar zu vergleichen und auszutauschen, um eine ID zuzuweisen.

Gibt es eine C ++ 11-freundliche Möglichkeit, dies zu tun? Kann ich ein atomares Bitset erstellen? Kann ich einen prozessübergreifenden Mutex verwenden? Wie kann ich sicherstellen, dass Konstruktoren prozessübergreifend nur einmal aufgerufen werden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage