From: Houder <houder@xs4all.nl>
To: cygwin@cygwin.com
Subject: Re: Bash heredoc on FD 3
Date: Wed, 05 Dec 2018 06:55:00 -0000 [thread overview]
Message-ID: <a49f2bd94a42acbb383b917f2f96c3ac@smtp-cloud7.xs4all.net> (raw)
In-Reply-To: <f720272e-c246-e807-d9a5-1cbccbd36a62@gmail.com>
On Tue, 4 Dec 2018 09:21:55, cyg Simple wrote:
> Dash is faster in processing the data but can be made to fail if you
> add -d to the ls commands you're using.
?
Oh, I believe you refer to:
https://cygwin.com/ml/cygwin/2018-12/msg00035.html
( Re: Bash heredoc on FD 3 )
> So in Bash the process is no longer available. Adding -d to the above:
>
> $ dash -c '/bin/ls -ld /dev/fd/*'
> /bin/ls: cannot access '/dev/fd/3': No such file or directory
> lrwxrwxrwx 1 eboyd53 eboyd53 0 Dec 3 10:50 /dev/fd/0 -> /dev/pty2
> lrwxrwxrwx 1 eboyd53 eboyd53 0 Dec 3 10:50 /dev/fd/1 -> /dev/pty2
> lrwxrwxrwx 1 eboyd53 eboyd53 0 Dec 3 10:50 /dev/fd/2 -> /dev/pty2
uhm, the facts are slightly different ...
/dev/fd is, well, a "moving target", it is symlnk to /proc/self/fd.
self refers to the "current process" ... it changes each time.
/proc/self/fd shows the open fd's of the current process ...
Currently, I am on Linux (Fedora) ...
@@ # currently I am executing the shell (bash)
@@ # self points to the procid of my bash ...
@@ printf "%s\n" /dev/fd/*
/dev/fd/0
/dev/fd/1
/dev/fd/10
/dev/fd/11
/dev/fd/2
/dev/fd/255
/dev/fd/3
@@ # however ls has NO open fd 3 if I invoke it like this:
@@ # (self points to the procid of my ls command)
@@ ls -ld /dev/fd/* # /dev/fd/* expands to the list above (bash)
ls: cannot access '/dev/fd/255': No such file or directory
ls: cannot access '/dev/fd/3': No such file or directory
lrwx------ 1 henri henri 64 Dec 5 07:26 /dev/fd/0 -> /dev/pts/0
lrwx------ 1 henri henri 64 Dec 5 07:26 /dev/fd/1 -> /dev/pts/0
lrwx------ 1 henri henri 64 Dec 5 07:26 /dev/fd/10 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:26 /dev/fd/11 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:26 /dev/fd/2 -> /dev/pts/0
@@ # ls HAS an open fd 3 if I invoke it like this:
@@ (# use strace to see it happen -- ls opens the directory)
@@ ls -lL /dev/fd # /dev/fd refers to /proc/self/fd
total 0
crw------- 1 henri tty 136, 0 Dec 5 07:38 0
crw------- 1 henri tty 136, 0 Dec 5 07:38 1
crw-rw----+ 1 root video 226, 0 Dec 5 07:01 10
crw-rw----+ 1 root video 226, 0 Dec 5 07:01 11
crw------- 1 henri tty 136, 0 Dec 5 07:38 2
dr-x------ 2 henri henri 0 Dec 5 07:38 3
@@ ls -l /proc/self/fd
total 0
lrwx------ 1 henri henri 64 Dec 5 07:38 0 -> /dev/pts/0
lrwx------ 1 henri henri 64 Dec 5 07:38 1 -> /dev/pts/0
lrwx------ 1 henri henri 64 Dec 5 07:38 10 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:38 11 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:38 2 -> /dev/pts/0
lr-x------ 1 henri henri 64 Dec 5 07:38 3 -> /proc/2605/fd
Same w/ dash:
@@ dash
$ printf "%s\n" /dev/fd/*
/dev/fd/0
/dev/fd/1
/dev/fd/10
/dev/fd/11
/dev/fd/12
/dev/fd/17
/dev/fd/18
/dev/fd/2
/dev/fd/3
/dev/fd/55
$ ls -ld /dev/fd/*
ls: cannot access '/dev/fd/12': No such file or directory
ls: cannot access '/dev/fd/3': No such file or directory
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/0 -> /dev/pts/3
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/1 -> /dev/pts/3
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/10 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/11 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/17 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/18 -> /dev/dri/card0
lrwx------ 1 henri henri 64 Dec 5 07:25 /dev/fd/2 -> /dev/pts/3
lr-x------ 1 henri henri 64 Dec 5 07:25 /dev/fd/55 -> /home/b/henri/.local/share/baloo/index
=====
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
next prev parent reply other threads:[~2018-12-05 6:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-02 18:43 Steven Penny
2018-12-03 15:43 ` cyg Simple
2018-12-03 15:56 ` cyg Simple
2018-12-03 17:28 ` Eliot Moss
2018-12-04 12:13 ` Houder
2018-12-04 14:22 ` cyg Simple
2018-12-05 6:55 ` Houder [this message]
2019-01-06 20:18 ` Corinna Vinschen
2019-01-07 18:28 ` Steven Penny
2019-01-07 19:03 ` Corinna Vinschen
2019-01-08 0:19 ` Steven Penny
2019-01-08 11:27 ` Corinna Vinschen
2019-01-08 21:05 ` Corinna Vinschen
2019-01-09 0:17 ` Steven Penny
2019-01-09 9:48 ` Corinna Vinschen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a49f2bd94a42acbb383b917f2f96c3ac@smtp-cloud7.xs4all.net \
--to=houder@xs4all.nl \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).