При каких обстоятельствах часть файла будет заблокирована?

0

Код ошибки Windows 33

Процесс не может получить доступ к файлу, потому что другой процесс заблокирован   часть файла.

Какой процесс заблокирует только часть файла? Другими словами, какой тип файла позволит заблокировать только его часть?

Примеры процессов и файлов, которые могли бы вызвать эту ошибку для обычного пользователя, были бы действительно полезны.

Dhiwakar Ravikumar
источник
Файл может быть большим и поэтому может быть записан на диск фрагментами. Эти фрагменты могут быть сохранены в нескольких секторах на жестком диске. Если ваш AV сканирует жесткий диск, или у вас есть другое программное обеспечение, которое проверяет хранилище жесткого диска (например, задание дефрагментации), возможно, что одна часть файла обрабатывается в данный момент.
mnmnc
Как в случае базы данных, которая существует в виде файла?
Dhiwakar Ravikumar
1
Да, возможно. Разные диски / файловые системы имеют разный размер базового блока (например, 512 КБ или 4000+ КБ), если файл больше и нет свободного места, доступного для файла, который вы сохраняете - я думаю, что он будет храниться по частям.
mnmnc

Ответы:

0

Эта ошибка появляется, когда вы пытаетесь получить доступ к части файла, которая заблокирована другой программой, используя LockFile , Примеры включают блокировку программного обеспечения базы данных контейнера базы данных, затронутого транзакцией, почтовые клиенты, выполняющие операцию с почтой внутри файла почтового ящика, и так далее.

Этот метод позволяет нескольким процессам / потокам получать доступ к различным частям файла, однако, когда процесс хочет получить доступ к части, которая используется кем-то другим, он может либо дождаться получения блокировки, либо выйти из строя.

Dmitry Grigoryev
источник