On Wed, 10 Dec 2008 14:12:13 +0300, Lars Ivar Igesund <[EMAIL PROTECTED]> wrote:
Spacen Jasset wrote:
Fawzi Mohamed wrote:
On 2008-12-08 19:06:42 +0100, Kagamin <[EMAIL PROTECTED]> said:
torhu Wrote:
Tango also opens files for writing with shared reading disabled by
default. I'm not sure why, but maybe someone can remember the reason
for it.
they just forgot? :)
consistency with windows as far as I know, so the program behaves the
same on windows and unix.
Fawzi
Its not consistent with any other libraries of any other compilers I
know of. The Linux implementation is in my opinion certainly incorrect.
On Windows, the "default" is not shared in the sense that that is what
you get if you pass no specific sharing parameters (0). I'm not windows
expert, but if I read the CreateFile docs correctly, having some form of
sharing as default can be wrong (causing errors) in some cases?
On Posix, the situation is quite different in that sharing is default.
In fact non-sharing is not enforced by the system such that it is up to
the application to figure out whether it should stay away or not.
I believe there is room for improvement, but I'm not sure the default
should be different?
First of all, behaviour should be consistent across all platforms.
Second, FILE_SHARE_READ is completely safe. There won't be any problems if you
write sequentially, i.e. rarely seek back and rewrite what you already wrote
(and this covers more than 90% of use cases). I wont cause any problems in the
latter case, too (application won't crash, handle gets invalidated or anything,
but reading application should take additional care to re-read file entirely
sometimes to stay up to date).