How to fix |mkfifo()| failure if |pathname| is on NFS ? / was: Re: [EXTERNAL] Re: mkfifo: cannot set permissions of 'x.fifo': Not a directory
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.
More information about the Cygwin