I have not tried FlushFileBuffers() yet, so I just tried it now, I am getting the same results. I have also tried disabling write caching in disk management and STILL have the same results. I am now thinking this is some caching being done on the SSD that is ignoring FlushFileBuffers() Probably a 'feature' designed to help extend the life of the SSD, but making it useless to store data that needs to survive a power failure.
I have tried running my freepascal program on a normal mechanical hard disk and flushfilebuffers() seems to be working as expected, Data is getting actually written to the disk and my 'power failure' is not affecting the data at all, but on the SSD, it's still just a correct length file of 00s Does anyone know of a way to force critical data to be written to a SSD so it's not lost during a power failure? James -----Original Message----- From: fpc-pascal [mailto:fpc-pascal-boun...@lists.freepascal.org] On Behalf Of Henry Vermaak Sent: Tuesday, March 21, 2017 11:08 AM To: FPC-Pascal users discussions <fpc-pascal@lists.freepascal.org> Subject: Re: [fpc-pascal] FreePascal Windows - Force files to write to disk On Tue, Mar 21, 2017 at 10:39:23AM -0400, James Richters wrote: > I am still having this issue. I've managed to narrow down what is happening > some. The problem is my data is not actually being written all the way to > disk. I now have a repeatable proven method to reproduce the issue. Here > is the sequence. > > In my freepascal console application, I create the file Assign file > Rewrite file Writeln file Writeln file Writeln file ... > Flush file Have you tried using the FlushFileBuffers() Windows API? Something like this: FlushFileBuffers(TextRec(AFile).Handle); Add "windows" to the uses clause, obviously. Henry _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal