В Linux (с ext4) я могу открыть видеофайл для воспроизведения, так как он загружается через другую программу (мой браузер, wget, торрент-клиент с включенной последовательной загрузкой и т.д.). Мой медиаплеер с удовольствием воспроизведет его для меня без каких-либо сбоев, при условии, что файл воспроизводится быстрее, чем я могу его воспроизвести. С другой стороны, Windows практически не позволяет вам что-либо делать с файлом, пока другая программа пишет в него. Что насчет ext4 делает это возможным, которого нет в файловых системах, таких как NTFS?

1 ответ1

0

Речь идет не столько о "возможностях" ext4 или любой другой файловой системы Linux, которые делают это возможным, а о настройках по умолчанию при открытии файлов с использованием интерфейса прикладного программиста (API) на каждой платформе.

В Windows CreateFile без дополнительных параметров не позволяет другим процессам открывать его одновременно. Вы должны явно указать опцию FILE_SHARE если вы хотите, чтобы другие процессы делали это.

В Linux создание файла с помощью fopen в режиме w или w+ позволяет всем остальным процессам читать и записывать его. Вы должны использовать другие системные вызовы, такие как flock чтобы предотвратить это.

По этой причине недавно созданный файл (с помощью вашего браузера, wget и т.д.) Может быть прочитан по умолчанию в Linux, в то время как в Windows он не используется по умолчанию. В принципе, если бы программисты хотели, они могли бы сделать это и наоборот. Но это потребует дополнительных усилий.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .