Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1361084311
Kolan
2013-02-17 10:58
2013.06.30
iTXt png чанк на objective-c


15-1361046602
Юрий
2013-02-17 00:30
2013.06.30
С днем рождения ! 17 февраля 2013 воскресенье


2-1352708166
AstonMartin
2012-11-12 12:16
2013.06.30
импорт в бд при многопользовательской работе


15-1360737140
O'ShinW
2013-02-13 10:32
2013.06.30
Соединить точки без пересечений. Графы.


2-1352911408
1785
2012-11-14 20:43
2013.06.30
Перемещение выровненных компонентов по TPanel