У меня есть ситуация, когда мне нужно взять файлы из каталога и обработать их так быстро, как они появляются. Процесс, загружающий файлы в этот каталог, записывает их с довольно высокой скоростью (до тысячи в минуту в часы пиковой нагрузки), и мне нужно извлекать их и обрабатывать по мере их поступления.
Одна проблема, с которой я столкнулся, это знание того, что мой код C ++ открыл файл, с которым завершил отправляющий сервер, то есть локальный FTP-сервер все еще не пишет.
В Solaris, как я могу открыть файл и знать со 100% уверенностью, что его никто не открыл?
Я должен отметить, что как только файл был записан и закрыт, другой сервер не сможет открыть его снова, поэтому, если я могу открыть его и узнать, что у меня есть эксклюзивный доступ, мне не о чем беспокоиться проверяя, что я все еще один с файлом.