[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash sockets: printf \x0a does TCP fragmentation
From: |
Chet Ramey |
Subject: |
Re: bash sockets: printf \x0a does TCP fragmentation |
Date: |
Sun, 23 Sep 2018 14:23:08 -0400 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 9/22/18 6:49 AM, dirk+bash@testssl.sh wrote:
>
>
> On 9/22/18 12:38 PM, Ilkka Virta wrote:
>> On 22.9. 02:34, Chet Ramey wrote:
>>> Newline? It's probably that stdout is line-buffered and the newline causes
>>> a flush, which results in a write(2).
>>
>> Mostly out of curiosity, what kind of buffering logic does Bash (or the
>> builtin
>> printf in particular) use? It doesn't seem to be the usual stdio logic where
>> you get
>> line-buffering if printing to a terminal and block buffering otherwise. I
>> get a
>> distinct write per line even if the stdout of Bash itself is redirected to
>> say
>> /dev/null or a pipe:
>>
>> $ strace -etrace=write bash -c 'printf "foo\nbar\n"' > /dev/null
>> write(1, "foo\n", 4) = 4
>> write(1, "bar\n", 4) = 4
>> +++ exited with 0 +++
>
> Oh. But thanks anyway!
>
> coreutils in fact does it in one shot as you indicated.
Then the change you need suggests itself:
env printf ...
or
(exec printf ...)
since the bash exec builtin doesn't execute builtin commands.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/
- bash sockets: printf \x0a does TCP fragmentation, dirk+bash, 2018/09/21
- Re: bash sockets: printf \x0a does TCP fragmentation, Bob Proulx, 2018/09/22
- Re: bash sockets: printf \x0a does TCP fragmentation, dirk+bash, 2018/09/22
- Re: bash sockets: printf \x0a does TCP fragmentation, Bob Proulx, 2018/09/22
- Re: bash sockets: printf \x0a does TCP fragmentation, Chet Ramey, 2018/09/23
- Re: bash sockets: printf \x0a does TCP fragmentation, Bob Proulx, 2018/09/23
- Re: bash sockets: printf \x0a does TCP fragmentation, Bob Proulx, 2018/09/23
- Re: bash sockets: printf \x0a does TCP fragmentation, Chet Ramey, 2018/09/23