/dev/fd/N not synonymous with file descriptor N; it is on Linux
Houder
houder@xs4all.nl
Mon Dec 17 03:41:00 GMT 2018
On 2018-12-16 21:28, Corinna Vinschen wrote:
> On Dec 16 17:31, Houder wrote:
>> L.S.,
>>
>> /dev/fd/N not synonymous with file descriptor N; it is on Linux
>
> Yes, it is. Most of the time. Try this:
>
> $ echo foo | cat /dev/fd/0
>
> The problem is that some of the concepts don't work as desired:
>
>> 64-@@ cat /dev/fd/0 <<\EOF
>
> If you observe what happens in tcsh in this situation you see that it
> doesn't even execute cat as long as you didn't type EOF. What you type
> is written to a tmpfile:
>
> $ ls -l /proc/5980/fd
> total 0
> lrwxrwxrwx 1 corinna vinschen 0 Dec 16 21:15 0 -> /tmp/sh.lVQq04
> lrwxrwxrwx 1 corinna vinschen 0 Dec 16 21:15 15 -> /dev/pty0
> lrwxrwxrwx 1 corinna vinschen 0 Dec 16 21:15 16 -> /dev/pty0
> lrwxrwxrwx 1 corinna vinschen 0 Dec 16 21:15 17 -> /dev/pty0
> lrwxrwxrwx 1 corinna vinschen 0 Dec 16 21:15 18 -> /dev/pty0
> lrwxrwxrwx 1 corinna vinschen 0 Dec 16 21:15 19 -> /dev/pty0
>
> However, this tmpfile has been unlinked already, so it has been moved
> to the
> recycle bin:
>
> $ ls -l /tmp/sh.lVQq04
> ls: /tmp/sh.lVQq04: No such file or directory
>
> So the path in the fd subdir doesn't reflect the actual file path.
>
> But after starting cat, cat tries to open /proc/self/fd/0 which
> is in fact the non-existing path /tmp/sh.lVQq04. Bad luck.
Yes Corinna, I am aware of the above. I described it here:
https://cygwin.com/ml/cygwin/2018-12/msg00040.html
( Re: Bash heredoc on FD 3 )
Sorry for NOT expressing myself more clearly.
The STC is, as I wrote, based on what I observed on Linux.
See attachment.
Regards,
Henri
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: disassembly.txt
URL: <http://cygwin.com/pipermail/cygwin/attachments/20181217/52c863f1/attachment.txt>
-------------- next part --------------
--
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
More information about the Cygwin
mailing list