Здравствуйте, nimdator, Вы писали:
N>Здравствуйте, Murr, Вы писали:
M>>Здравствуйте, nimdator, Вы писали:
M>>Если файл не исчезает после создания, то проблему можно разделить на две части:
M>>1) обнаружение того, что в директории возник новый файл
M>>2) обнаружение того, что создатель его закрыл
M>>Обе части решаются примерно одинаково, если говорить о конкретных реализациях,
M>>то по первой части это может быть fam, а по второй можно посмотреть реализацию
M>>lsof (вероятно, через kvm).
N>Это значит kvm библиотеку подключать?
Значит стоит посмотреть исходники. Я не знаю, как lsof это делает для Solaris.

Знаю лишь то, что для Linux — это простой обход /proc. Но, в свое время читал,
что в Solaris (или SunOS?) для этих целей используется kvm.
N>Но вот интересно — в маздае O_EXCL работает. В Солярке нет
Погоди. O_EXCL судя по моему man означает лишь то, что файл не будет пересоздан.
Если программа плюет на блокировки, то advisory блокировки ничем не помогут.
mandatory блокировки, наверное, могут помочь в зависимости от их семантики в
каждом конкретном случае (для каждой конкретной ОС), но даже в тех случаях, когда
они есть они могут не предоставлять интерфейс вроде "поспать пока файл все закроют",
а лишь попытаться атомарно взять эксклюзивную блокировку и в случае неудачи сразу
выйти.
N>Я собственно удивлен, как верующий заставший Бога, справляющим нужду,
N>это зачем-то был нужно или какая-то недочет в системе?