Что случится, если один процесс считывает данные из файла в то время, как другой процесс пытается его удалить?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

В Unix-подобных системах файл не будет сразу удалён, если он открыт другим процессом. Удаление файла удаляет ссылку на него из каталога, но сам файл остаётся на диске, пока все процессы не закроют дескрипторы. Таким образом, процесс чтения сможет продолжить работу, а файл физически удалится позже.

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

Поэтому:

  • В Unix: чтение продолжится, удаление отложено.
  • В Windows: удаление не произойдёт, пока файл открыт.

Для безопасной работы с файлами в многопроцессной среде рекомендуется использовать механизмы блокировок или синхронизации доступа.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку