How to fix |mkfifo()| failure if |pathname| is on NFS ? / was: Re: [EXTERNAL] Re: mkfifo: cannot set permissions of 'x.fifo': Not a directory

Corinna Vinschen corinna-cygwin@cygwin.com
Sat Aug 26 14:28:53 GMT 2023


On Aug 25 23:21, Lavrentiev, Anton (NIH/NLM/NCBI) [C] via Cygwin wrote:
> > it is not possible to diffentiate between Cygwin
> > FIFOs and real FIFOs created from the remote side in `ls -l'
> > output.
> 
> Why would that be necessary?  If it's a FIFO, it can be used as a
> FIFO, regardless where and how it was created..

You don't seem to understand the problem.  A Cygwin FIFO is not a real
FIFO.  We're running on Windows, right?  Show me how to create a FIFO on
NTFS or FAT by OS calls only, please.

Cygwin's way of creating FIFOs is to create a Cygwin syumlink
with special content which in turn is faked to be a FIFO when running
Cygwin's stat(2) call.  Usually that's a Windows shortcut (one of the
.lnk thingies), but on NFS we create a real symlink with weird content
*accidentally*, because that's how we create symlinks on NFS, and nobody
ever cared to that anyway.  Again, there is no API to create native
FIFOs on a remote NFS filesystem.  

But, ultimately, you're still right.  If I can recognize a file as FIFO,
I can use it as FIFO, regardless if it's a native FIFO or a Cygwin FIFO.
This just isn't done yet.


Corinna


More information about the Cygwin mailing list