[fpc-pascal] TFileStream.SetSize sometimes fails
Michael Van Canneyt
michael at freepascal.org
Fri Aug 14 20:42:49 CEST 2009
On Fri, 14 Aug 2009, Martin wrote:
> Michael Van Canneyt wrote:
>> On Fri, 14 Aug 2009, Martin wrote:
>>> However in c I can specify
>>> open(fname, O_WRONLY | O_TRUNC );
>>> which does work (bypasses the bug)
>>> I haven't seen an equvivalent to O_TRUNC in fpc ?
>> Sure there is:
>> uses baseunix;
>> H : integer;
>> h:=fpOpen(fname,O_WrOnly or o_trunk)
>> But that is not relevant:
>> a) FPC itself should not work around kernel/vbox bugs.
>> b) It would not help in Mattias' case anyway...
> I never said FPC should workaround, and I am not in favour for the Lazarus to
> do so.
> Then again, if that had been a cross platform argument, there would be no
> reason (IMHO) why lazarus could not set the flag , when opening the file. If
> it had been cross-platform....
Windows has TRUNCATE_EXISTING, so in theory we could introduce fmTruncate to be
used in conjunction with fmOpenwrite, and then Mattias could use it in the TFileStream
(As a side node: TRUNCATE_EXISTING also had/has bug when working on remote
files, you can find this in Microsofts Knowledge Base ;-))
More information about the fpc-pascal