В POSIX правильным решением является защита данных с помощью надежного мьютекса в разделяемой памяти.Если ваш процесс завершился с сохранением надежного мьютекса, другая программа, пытающаяся заблокировать мьютекс, не будет тупиковой, но вместо этого вернет EOWNERDEAD
, а затем она сможет очистить состояние, защищенное мьютексом, и вызвать pthread_mutex_consistent
.
Редактировать: Если вы хотите запретить запуск нескольких экземпляров программы, есть, конечно, лучшие / более простые способы, такие как блокировка файла базы данных.