c ++ 11 atomics interprocess e mutexes

Eu tenho um programa Linux que gera vários processos (fork) e se comunica através de memória compartilhada POSIX. Eu gostaria de ter cada processo alocar um id (0-255). Minha intenção é colocar um bitvector na região de memória compartilhada (inicializada em zero) e comparar atomicamente e trocar um bit para alocar um id.

Existe uma maneira amigável para fazer isso? Posso criar um conjunto de bits atômico? Posso usar um mutex nos processos? Como posso garantir que os construtores sejam chamados uma vez e apenas uma vez em todos os processos?

questionAnswers(2)

yourAnswerToTheQuestion