c ++ 11 interproceso atómica y mutex

Tengo un programa Linux que genera varios procesos (fork) y se comunica a través de la memoria compartida POSIX. Me gustaría que cada proceso asigne un ID (0-255). Mi intención es colocar un bitvector en la región de memoria compartida (inicializada a cero) y comparar atómicamente e intercambiar un bit para asignar un ID.

¿Hay una forma amigable para c ++ 11 de hacer esto? ¿Puedo crear un conjunto de bits atómico? ¿Puedo usar un mutex a través de procesos? ¿Cómo puedo asegurar que se llame a los constructores una sola vez en todos los procesos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta