Можно ли использовать мьютекс из pthread.h для синхронизации процессов, созданных с помощью fork () из unistd.h? Afaik, оба в конце используют системный вызов clone ().
Я спрашиваю его в области сегмента разделяемой памяти (из ip c .h, shm.h) с критическими данными, которые должны быть защищенным от одновременных записей из разных процессов. В этой памяти семафоры могут быть определены и позже использованы в различных процессах. Почему нельзя использовать мьютексы вместо семафоров?
Почему я спрашиваю?
Прежде всего мне сказали, что это не сработает, не получив никакого объяснения этому. На Inte rnet я не смог найти никакого ответа, поэтому я решил спросить здесь.
Во-вторых, разветвленный процесс более безопасен, чем поток, созданный с помощью pthread_create - если разветвленный процесс падает, остальная часть программы продолжается работать, и если поток завершает работу, то вся программа завершается.
В-третьих, мьютексы кажутся более удобными для человека, чем семафоры в управлении.