¿Cómo ls
saben los comandos como cuál es su stdout?
Parece ls
que funciona de manera diferente dependiendo de cuál sea el stdout objetivo. Por ejemplo si lo hago:
ls /home/matt/tmp
el resultado es:
a.txt b.txt c.txt
Sin embargo si lo hago
ls /home/matt/tmp | cat
el resultado es (es decir, nueva línea por resultado):
a.txt
b.txt
c.txt
El proceso se pasa un descriptor de archivo 1 para stdout ¿verdad? ¿Cómo determina cómo formatear el resultado? ¿El descriptor de archivo revela información?