[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bash sockets: printf \x0a does TCP fragmentation
From: |
dirk+bash |
Subject: |
Re: bash sockets: printf \x0a does TCP fragmentation |
Date: |
Sat, 22 Sep 2018 12:49:57 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 |
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.
Dirk
- 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