Comment les commandes comme ls
savent-elles quelle est leur sortie standard?
Il semble ls
fonctionner différemment en fonction de la cible standard. Par exemple, si je le fais:
ls /home/matt/tmp
le résultat est:
a.txt b.txt c.txt
Mais si je le fais
ls /home/matt/tmp | cat
le résultat est (ie nouvelle ligne par résultat):
a.txt
b.txt
c.txt
Le processus est passé un descripteur de fichier 1 pour stdout à droite? Comment détermine-t-il comment formater le résultat? Le descripteur de fichier révèle-t-il des informations?