Сквозняк писал(а):А редактировать и читать в линуксе можно и незакрытый другой программой файл - многозадачность.
Вот это и не хорошо. Уже проверил. Если два процесса одновременно пишут и читают идин и тот же файл - получается белеберда. И записывается (первым процессом) неправильно, и читается (вторым процессом) не всё.
Сквозняк писал(а):перед открытием смотреть время последней модификации файла и сравнивать с текущим
Дело в том, что время последней модификации может быть каким угодно! Это может быть и старый файл (но в данный момент активно редактируемый) и вновь созданный (еще не успевший отредактироваться). Да и вообще время последней модификации никак не подскажет: используется-ли файл в данный момент другим процессом. Ведь он может и просто быть открыт и потом закрыт без модифицирования.

Суть в том, чтоб отследить такую ситуацию, например:
Лежит себе файл в некотором каталоге. Мы его можем открыть, посмотреть, удалить, редактировать. Но если он, в момент попытки начать работать с ним, занят другим процессом (Например открыт в OpenOffice), то нужно дождаться, пока в нем другой процесс не закончит все свои изменения и не освободит. Иначе мы 100% будем работать с недоделанным файлом и хорошего тут ничего нет

В Windows есть возможность отследить занятость файла (см. выше приведенную функцию
IsFileClosed), а в что делать в такой ситуации в Linux???
Добавлено спустя 1 минуту 42 секунды:Ведь должна быть какая-то системная функция сообщающая об использовании в данный момент файла некоторым процессом... Ну не верю я в ее отсутствие!
Добавлено спустя 1 час 9 минут 1 секунду:Нашел, что есть в Linux утилита lsof - показывает какие файлы, какими процессами открыты. Она же как-то добывает эту информацию из ОС!