Текущий архив: 2013.06.30;
Скачать: CL | DM;
Вниз
Как в линуксе сделать FlushFileBuffers ? Найти похожие ветки
← →
Дмитрий С © (2013-02-10 22:55) [0]Точнее во фрипаскале.
← →
Дмитрий С © (2013-02-10 23:02) [1]А если еще точнее нужно сделать чтобы после выполнения
TFileStream.Free файл был гарантированно записан на диск (т.е. гарантировано прочитан при необходимость). Можно написать потомка для TFileStream.
Искал много-много. Везде по-разному пишут: в одном месте нашел, что для этого нужно выполнять вызов fsync, но при этом должен быть отключен кеш записи диска, что нежелательно. В общем я в замешательстве.
← →
Дмитрий С © (2013-02-10 23:10) [2]Вот тут внизу меня смущает табличка
http://www.humboldt.co.uk/2009/03/fsync-across-platforms.html
← →
vrem (2013-02-10 23:48) [3]а я решил более кардинально - в линуксе запускается вине, а в нём программа на лазарусе и вуаля - всё работает и не надо заботиться о линуксе и лазарусе под линукс :)
← →
Дмитрий С © (2013-02-11 00:07) [4]
> vrem (10.02.13 23:48) [3]
тогда уж лучше на дельфи писать. А что делала твоя программа?
← →
Игорь Шевченко © (2013-02-11 00:13) [5]
> TFileStream.Free файл был гарантированно записан на диск
> (т.е. гарантировано прочитан при необходимость).
а что, без ухищрений не читается ? всю жизнь было достаточно вызвать close
← →
Дмитрий С © (2013-02-11 00:29) [6]
> Игорь Шевченко © (11.02.13 00:13) [5]
Моя программа работает с деньгами. Будет очень плохо, если что-нибудь случится и она отдаст команду на оплату, а записать не успеет. Вот этот момент я хочу исключить.
← →
Игорь Шевченко © (2013-02-11 00:48) [7]Дмитрий С © (11.02.13 00:29) [6]
> Моя программа работает с деньгами
Если не секрет, в какой области ? Ну, чтобы случайно не столкнуться. Потому что если программу работы с деньгами пишут люди, задающие вопросы такого рода по форумам, становится несколько боязно. За деньги.
← →
Дмитрий С © (2013-02-11 01:19) [8]
> Игорь Шевченко © (11.02.13 00:48) [7]
Так вот и помоги, если можешь. А то вдруг таки столкнешься :)
← →
Игорь Шевченко © (2013-02-11 01:32) [9]Дмитрий С © (11.02.13 01:19) [8]
А чем помогать-то ? Проверь сам, у тебя все инструменты в руках.
← →
DevilDevil © (2013-02-11 03:59) [10]> Игорь Шевченко © (11.02.13 00:48) [7]
> Игорь Шевченко © (11.02.13 01:32) [9]
меня пугают люди, которые будучи "Мастерами" на форуме, оказывают "помощь" в разработке софта, работающего с деньгами и редкими ОС-специфик функциями, фразой "Проверь сам, у тебя все инструменты в руках."
← →
Anatoly Podgoretsky © (2013-02-11 08:40) [11]> DevilDevil (11.02.2013 03:59:10) [10]
А иначе придется от Игоря шарахаться
← →
Pit (2013-02-11 10:43) [12]
> Потому что если программу работы с деньгами пишут люди,
> задающие вопросы такого рода по форумам, становится несколько
> боязно
хорошо, что задают.
Боязно как раз в случае, когда они наслушаются Игорей Шевченко и в следующий раз вместо того, чтобы посоветоваться, когда неуверенны - пойдут на риск.
← →
Slym © (2013-02-13 08:54) [13]Журналирование или упрощенно запись в два файла...
procedure Operation(Money)
begin
open(Journal);
write(Journal,Money);
close(Journal);
open(Account);
write(Account,Money);
close(Account);
open(Journal);
delete(Journal,Money);
close(Journal);
end;
procedure CheckJournal
open(Journal);
if OperationCount(Journal)>0 then Alarm!!!;//тут проверка наличия записи в боевом файле
close(Journal);
← →
Дмитрий С © (2013-02-13 14:48) [14]
> Slym © (13.02.13 08:54) [13]
А где гарантия что оба файла не повисли в кеше записи?
← →
Slym © (2013-02-14 09:07) [15]журнал открывать с атрибутом не кешировать и флюшить перед закрытием
а где гарантия что винт не здохнет?
← →
Slym © (2013-02-14 09:12) [16]гарантию дает бумага, в нейтральной среде, при комнатной температуре, влажности 40-60%, при отсутствии УФ и прочего ионизирующего излучения, при отсутствии ускорений и прочих физических воздействий.
← →
Cobalt © (2013-02-14 14:20) [17]Отчего бы не использовать СУБД вместо файлов?
← →
Дмитрий С © (2013-02-14 17:20) [18]
> журнал открывать с атрибутом не кешировать и флюшить перед
> закрытием
А такое есть?
Ушел в гугл.
← →
Дмитрий С © (2013-02-17 02:49) [19]Для тех кто найдет в поиске.
Нашел в хелпе по fpOpen:
O_Sync
The file is opened for synchronous IO. Any write operation on the file will not return untill the data is physically written to disk.
То что нужно.
Страницы: 1 вся ветка
Текущий архив: 2013.06.30;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.007 c