help-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: difference between read -u fd and read <&"$fd"


From: Peng Yu
Subject: Re: difference between read -u fd and read <&"$fd"
Date: Thu, 16 May 2024 08:19:20 -0500

On Wed, May 15, 2024 at 11:51 PM Kerin Millar <kfm@plushkava.net> wrote:
>
> On Thu, 16 May 2024, at 3:25 AM, Peng Yu wrote:
> > Hi,
> >
> > It appears to me that read -u fd and read <&"$fd" achieve the same
> > result. But I may miss corner cases when they may be different.
> >
> > Is it true that they are exactly the same?
>
> They are not exactly the same. To write read -u fd is to instruct the read 
> builtin to read directly from the specified file descriptor. To write read 
> <&"$fd" entails one invocation of the dup2 syscall to duplicate the specified 
> file descriptor to file descriptor #0 and another invocation to restore it 
> once read has concluded. That's measurably slower where looping over read.

OK. So besides this performance difference, they are functionally the
same. In other words, one program uses read -u "$fd" the other program
uses read <&"$fd". The results of the two programs shall be the same?

-- 
Regards,
Peng



reply via email to

[Prev in Thread] Current Thread [Next in Thread]