Бьюсь над задачкой:
Как _кроссплатформенно_ открыть файл лога на запись, а остальным процессам дать возможность читать его, пока он еще не закрыт.
Ну и естественно, файл лог должен сам создаваться, если еще не был создан и урезаться до нулевой длины при открытии на запись.
Хочется сделать без лишних хаков - и никак

Ниже варианты и результаты.
can't read - одновременно файл лога читать не получается
file absent - не создается файл, если уже не создан.
- Код: Выделить всё
//linux - ok. win32 - can't read
F:=TFileStream.Create( GlobalConfig.DebugLogFile,
fmCreate or
fmOpenWrite or
fmShareDenyWrite );
//linux - ok. win32 - can't read
F:=TFileStream.Create( GlobalConfig.DebugLogFile,
fmCreate or
fmShareDenyWrite );
//linux - ok. win32 - can't read
F:=TFileStream.Create( GlobalConfig.DebugLogFile,
fmCreate or
fmOpenReadWrite or
fmShareDenyWrite );
//linux - file absent. win32 - file absent
F:=TFileStream.Create( GlobalConfig.DebugLogFile,
fmOpenReadWrite or
fmShareDenyWrite );
Может я не понимаю чего-то?
И еще - может есть какой-нибудь способ сбросить буфер TFileStream не убивая класс? Я имею ввиду по типу старого доброго Flush(var f:TextFile) ?
Спасибо.