mkfifo: cannot set permissions of 'x.fifo': Not a directory
Wed Aug 9 09:56:43 GMT 2023
On Aug 9 11:12, Martin Wege via Cygwin wrote:
> On Wed, Aug 9, 2023 at 10:01 AM Corinna Vinschen
> <email@example.com> wrote:
> > On Aug 8 21:38, Martin Wege via Cygwin wrote:
> > > On Tue, Aug 8, 2023 at 10:20 AM Corinna Vinschen
> > > <firstname.lastname@example.org> wrote:
> > > >
> > > > On Aug 7 23:14, Martin Wege via Cygwin wrote:
> > > > > 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.
> > >
> > > So no Windows ioctl to do a mknod?
> > Windows does not have provisions to store FIFOs on disk. The closest
> > you get in Windows are Windows named pipes, and those are stored
> > non-permanently in a special, temporary filesystem inside the native NT
> > namespace. Try this in Cygwin:
> > $ cd /proc/sys/Device/NamedPipe/ <-- trailing slash!
> > $ ls -l
> > FIFOs in the normal Windows filesystem are a Cygwin fake.
> Maybe make pipes in Cygwin symlinks to /proc/sys/Device/NamedPipe/?
Why? Windows Named Pipes don't act like UNIX FIFOs.
> > > What does a Linux/FreeBSD FIFO file look like, if you export that
> > > filesystem via NFSv3, and mount it via the native Windows NFSv3
> > > driver, and do a ls -l in Cygwin?
> > It looks like a FIFO because MSFT NFSv3 exports the stat(2) info
> > verbatim:
> > linux$ mkfifo blubb
> > cygwin$ ls -l blubb
> > prw-r--r-- 1 corinna vinschen 0 Aug 8 10:22 blubb
> Will cygwin treat this as a FIFO?
No. Cygwin FIFOs != Unix FIFOs.
> Can cygwin set the 'p' flag via a magic ioctl?
No. I don't understand your insistence to use FIFOs on NFS. There is
no value in that, because you can't share them between systems anyway.
More information about the Cygwin