Además de usar un archivo temporal para ayudar, ¿hay alguna forma en que el programa pueda almacenar la entrada de la memoria intermedia stdin
pero no la envíe hasta que obtenga el contenido EOF
? Tampoco quiero usar una variable de shell (por ejemplo buffer=$(cat)
).
Este programa debe comportarse de la siguiente manera (suponga que el nombre del programa es buffered-cat
):
$ buffered-cat
line 1
line 2
line 3
^D # Ctr-D here(End of Line)
Ahora que recibió el programa ^D
, buffered-cat
el contenido sale
line 1
line 2
line 3
sort
para este propósito. Obviamente tiene efectos secundarios que pueden ser indeseables.