[PATCH 0/2] Provide virtual /dev/fd and /dev/{stdin,stdout,stderr} symlinks

Brian Inglis Brian.Inglis@SystematicSw.ab.ca
Fri Feb 25 18:35:26 GMT 2022


On 2022-02-21 06:36, Johannes Schindelin wrote:
> These symbolic links are crucial e.g. to support process substitution (Bash's
> very nice `<(SOME-COMMAND)` feature).
> 
> For various reasons, it is a bit cumbersome (or impossible) to generate these
> symbolic links in all circumstances where Git for Windows wants to use its
> close fork of the Cygwin runtime.
> 
> Therefore, let's just handle these symbolic links as implicit, virtual ones.
> 
> If there is appetite for it, I wonder whether we should do something similar
> for `/dev/shm` and `/dev/mqueue`? Are these even still used in Cygwin?

Looks like that would make sense, as Cygwin appears to create all of 
those only on first startup (and probably rechecks if they need created 
every startup) e.g.

Cygwin-32 $ ls -Fglot /dev/ | tail -6
lrwxrwxrwx  1       13 Apr 29  2012 fd -> /proc/self/fd/
lrwxrwxrwx  1       15 Apr 29  2012 stderr -> /proc/self/fd/2
lrwxrwxrwx  1       15 Apr 29  2012 stdout -> /proc/self/fd/1|
lrwxrwxrwx  1       15 Apr 29  2012 stdin -> /proc/self/fd/0
drwxr-xr-x+ 1        0 Apr 29  2012 mqueue/
drwxr-xr-x+ 1        0 Apr 29  2012 shm/

Cygwin-64 $ ls -Fglot /dev/ | tail -6
drwxrwxrwt+ 1        0 Dec  2  2017 shm/
lrwxrwxrwx  1       13 May 14  2013 fd -> /proc/self/fd/
lrwxrwxrwx  1       15 May 14  2013 stderr -> /proc/self/fd/2
lrwxrwxrwx  1       15 May 14  2013 stdout -> /proc/self/fd/1|
lrwxrwxrwx  1       15 May 14  2013 stdin -> /proc/self/fd/0
drwxrwxrwt+ 1        0 May 14  2013 mqueue/

so they would all get 2006-12-01 00:00:00+0000 birth time.

[Looks like I ran something using shm in 2017!]

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]


More information about the Cygwin-patches mailing list