Alen
PID выдаются последовательно, и циклично начиная от 2 и до 65535, если процесс завершился его PID никому не достанется пока не пробежит весь диапазон, на это могут уйти годы.
Посмотрел на три разных компьютера:
1. Мой рабочий ноутбук, Windows XP, uptime 3 дня. Максимальный PID уже 7892
2. Сервер, Debian, uptime месяц. Максимальный PID 21394. Но на нем не бежит ни чего, что активно генерировало новые процессы. Я думаю, что Apache с cgi крутит этот счетчик очень быстро.
3.Сервер, Windows 2003 (контроллер домена), uptime неделя. Максимальный PID 5624.
Соглашусь, что в нормальном режиме работы вероятность коллизий невелика, хотя о годах речь не идет ;-) Но в случае перезагрузки системы вероятность коллизий многократно возрастает. При этом предложенный вами способ имеет только одно потенциальное преимущество перед моим. Он не держит открытым файл в течении всего времени блокировки. Но реально это может вызвать проблемы только при наличии тысяч одновременных блокировок (а мне нужна только 1).