-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathbuffering.txt
25 lines (23 loc) · 1.55 KB
/
buffering.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
┏━━━━━━━━━━━━━━━┓
┃ BUFFERING ┃
┗━━━━━━━━━━━━━━━┛
BUFFERING ==> #La plupart des commandes Unix sont buffered. Par
#défaut :
# - stdin est full-buffered
# - stdout est line-buffered dans un terminal, sinon
# full-buffered.
# - stderr est unbuffered
#La buffer size est par défaut la page size (4Ko
#souvent), et 1Ko dans un terminal.
#Cependant, cela ne se voit pas car le buffer est de
#toute façon vidé lors de son exit. Or, cela peut se
#voir dans des cas particuliers comme un input qui
#arrive en temps réel (venant d'une commande qui ne se
#termine pas, et continue son exécution), par exemple :
# - tail -f FILE | grep | awk
#Ici tail -f est line-buffered en output, mais grep est
#full-buffered, ce qui bloque awk.
#Une solution est alors d'utiliser une option de la
#commande pour la faire unbuffered (grep, sed, awk) ou
#stdbuf, ou une commande de la commande permettant de
#vider le buffer (par exemple fflush() de awk)