Mail Archives: cygwin/2008/03/06/10:33:37
On Mar 6 16:27, Corinna Vinschen wrote:
> On Mar 6 14:56, Eric Blake wrote:
> > Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:
> >
> > >
> > > But the flags are not O_RDONLY|O_CREAT. They are O_WRONLY|O_CREAT.
> >
> > I still think Linux is wrong - t/ is not an existing directory, so you can't
> > claim that an attempt was made to open an existing directory with O_WRONLY.
> > But I guess it is a bit ambiguous, since if t/ did exist, then opening t/.
> > should indeed fail with EISDIR; at any rate, it is certainly more efficient to
> > blindly reject O_WRONLY due to the trailing slash without even checking for the
> > existence of t.
>
> In our case I added a special case to emit EISDIR, otherwise we would
> get ENOENT automatically (that's what STATUS_OBJECT_NAME_INVALID gets
> converted to). However, I'm somewhat puzzled that you used that bash
> example:
>
> $ : > t/
> bash: t/: Is a directory.
>
> If what you said is right, and if I revert the change to fhandler.cc,
> we would get a ENOENT in that case, too. And given your arguments,
> that should be correct.
>
> Do you agree?
I should add that I'm still rather leaning towards the Linux behaviour.
I tested this on Solaris 10, and it behaves again different. In both
examples open(2) returns with ENOTDIR.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -