[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: No such device or address when opening /dev/fd/<x> on opened /dev/tc
Re: No such device or address when opening /dev/fd/<x> on opened /dev/tcp socket
Mon, 5 Apr 2021 22:36:01 +0300
5 Nisan 2021 Pazartesi tarihinde Chet Ramey <email@example.com> yazdı:
> On 4/5/21 3:14 PM, Oğuz wrote:
>> 5 Nisan 2021 Pazartesi tarihinde Chet Ramey <firstname.lastname@example.org <mailto:
>> email@example.com>> yazdı:
>> There's no guarantee that file descriptors opened with socket(2) show
>> up in
>> /dev/fd. Bash doesn't emulate /dev/fd if the system provides it, so
>> it's up
>> to the OS on those systems whether they do or not.
>> It doesn't generate that error on macOS, for instance, which has
>> I can reproduce the error, but it is coming from `tee', which tries to
>> open `/dev/fd/??' as a regular file whereas it is a socket, and gets an
>> ENXIO error.
> That's what I mean. What happens on a system that implements /dev/fd and N
> in /dev/fd/N is a valid descriptor? There are varying answers.
> The simplest /dev/fd drivers just dup the file descriptor passed as an
> argument. There are progressively more complex implementations. It's
> not guaranteed they treat descriptors returned by socket(2) the same as
> those returned by open(2), even to whether they show up in /dev/fd at all.
> If you don't have /dev/fd, all bets are off, of course, but then I'd guess
> the error would be ENOENT.
Yeah. If you have /dev/fd though you have /dev/fd/1 (and even /dev/stdout),
so OP could have done `echo a | tee /dev/fd/1 >/dev/tcp/host/port' instead
> ``The lyf so short, the craft so long to lerne.'' - Chaucer
> ``Ars longa, vita brevis'' - Hippocrates
> Chet Ramey, UTech, CWRU firstname.lastname@example.org http://tiswww.cwru.edu/~chet/
Re: No such device or address when opening /dev/fd/<x> on opened /dev/tcp socket, konsolebox, 2021/04/05