On 20 May 2009, at 16:15, Roland Turcan wrote:

I just didn't find relation of fpfsync function to mac os x
implementation.

rtl/unix/unxdeclh.inc:

Function fpfsync (fd : cint) : cint; cdecl; external clib name 'fsync';

JM> uses
JM>    unix;
JM> ...
JM>    fpfsync(handle).

I have the same actually, but it doesn't work as I expect.

When I write into FileStream any data I call FlushBuffer function
which contains fpfsync(handle), but because if still buggy version of
ported application I have some expections which crashes application
and then nearly all changed files are broken.

Are you checking the return value of fpfsync for errors? And are you certain that nothing is buffered in the stream itself, or elsewhere in the application?

Are you sure, that fpfsync works fine on Mac OS?

No. I don't think anyone ever added a test for that function to the test suite (nor for most other Unix-unit functions). Also see the man page of fsync for caveats (although those only apply in case of a power failure or an OS crash).


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to