У меня есть 10 процессов, которые пытаются открыть один и тот же файл более или менее одновременно с помощью открытого (O_CREAT) вызова, а затем удалить его. Есть ли какой-либо надежный способ узнать, какой процесс фактически создал файл и который уже открыл файл, например, если я хочу точно подсчитать, сколько раз этот файл был открыт в таком сценарии.
Я предполагаю, что могу поместить глобальный мьютекс в открытую операцию файла и выполнить последовательность вызовов open() с использованием флагов O_CREAT и O_EXCL, но это не соответствует моему определению "надежный".