mkfifo: cannot set permissions of 'x.fifo': Not a directory

Corinna Vinschen corinna-cygwin@cygwin.com
Tue Aug 8 08:20:42 GMT 2023


On Aug  7 23:14, Martin Wege via Cygwin wrote:
> On Mon, Aug 7, 2023 at 9:14 PM Corinna Vinschen
> <corinna-cygwin@cygwin.com> wrote:
> >
> > On Aug  7 12:26, Brian Inglis via Cygwin wrote:
> > > On 2023-08-07 08:42, Martin Wege via Cygwin wrote:
> > > > We get a weird mkfifo failure in Cygwin on NTFS:
> > > >
> > > > /usr/bin/mkfifo -m 600 x.fifo
> > > > mkfifo: cannot set permissions of 'x.fifo': Not a directory
> > >
> > > This error is also reproducible with default fifo permissions 666 or
> > > anything else, and appears to be returned by gen_full_path_at() in
> > > syscalls.cc when called with a fifo:
> >
> > This will be fixed in 3.4.8,
> 
> Thank you
> 
> > see
> > https://cygwin.com/git/?p=newlib-cygwin.git;a=commit;h=b56b4d7fd85b
> 
> First, Can I download a beta of  3.4.8, or any other version with that
> fix? It's pretty urgent

You can install a test release of Cygwin, simply by using the setup tool
These test releases are always created from the git main branch, though,
so they are always test releases of the next major version, currently
3.5.0.

> Secondly, how are fifos, other device nodes and mknod implemented? You
> encode them as softlinks on ntfs?

Not only on NTFS.  FIFOs on the disk are always created as symlinks
with a special target string, recognized by Cygwin.  No differece on
NFS.  Microsoft NFSv3 has no way to specify creating a "real" FIFO
on the remote filesystem.  It wouldn't make sense anyway, because
there's no way to share the FIFO across systems.


Corinna


More information about the Cygwin mailing list