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

Reply via email to