On Sat, 18 May 2024, at 3:53 AM, Zachary Santer wrote: > Was «difference between read -u fd and read <&"$fd"» on help-b...@gnu.org > > On Thu, May 16, 2024 at 12:51 AM Kerin Millar <k...@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. > > So here's another tangent, but has it been considered to add an option > to the printf builtin to print to a given file descriptor, rather than > stdout? If printing to a number of different file descriptors in > succession, such an option would appear to have all the same benefits > as read's -u option.
Until now, not that I am aware of. I normally apply a redirection to a group command in such cases, though it still results in exactly two dup2 calls. -- Kerin Millar