Блокировка файлов UNIX не работает: операционная система предполагает, что вы знаете, что делаете, и позволяет делать то, что вы хотите:
Например, если вы попытаетесь удалить файл, который другой процесс открыл, операционная система обычно позволяет вам это делать. Первоначальный процесс по-прежнему сохраняет файл-дескрипторы до тех пор, пока он не завершится - в этот момент файловая система будет спокойно перезапускать дисковые ресурсы. Нет суеты, так, как мне нравится.
Как разные вещи в Windows: если я пытаюсь удалить файл, который использует другой процесс, я получаю ошибку операционной системы. Файл неприкосновен, пока исходный процесс не заблокирует файл. Это было замечательно в однопользовательские дни MS-DOS, когда любой процесс блокировки, вероятно, находился на том же компьютере, который содержал файлы, однако в сети это кошмар:
Рассмотрим, что происходит, когда процесс зависает во время записи в общий файл на файловом сервере Windows. Прежде чем файл может быть удален, мы должны найти компьютер и идентифицировать процесс на том компьютере, который первоначально открыл файл. Только тогда мы можем убить процесс и удалить наш нежелательный файл.
Какая неприятность!
Есть ли способ сделать это лучше? Я хочу, чтобы блокировка файлов в Windows приводила к блокировке файлов в UNIX. Я хочу, чтобы операционная система просто позволяла мне делать то, что я хочу, потому что я главный, и я знаю, что я делаю...
... так можно ли это сделать?