7 Réponses :
Bien sûr, cela pourrait être. Je souhaite peut-être rediriger la standard dans un fichier texte, un autre processus, une prise, peu importe. p>
Par défaut, il s'agit de la console, mais il existe une variété de raisons de la rediriger, la plus utile (à pas avec la philosophie UNIX) étant la redirection de la production d'un programme à l'entrée d'un autre programme. Cela permet de créer de nombreux petits programmes légers qui se nourrissent et travaillent comme des parties discret d'un système plus vaste. P>
Fondamentalement, il s'agit simplement d'un mécanisme simple mais puissant pour le partage de données. Il est plus populaire sur * NIX Systems pour la raison pour laquelle je mentionne ci-dessus, mais cela s'applique également aux fenêtres. P>
sur la plupart des systèmes, vous pouvez rediriger l'entrée / sortie standard / erreur sur d'autres descripteurs ou emplacements de fichier.
Par exemple (sur UNIX): P>
echo "Hello" > bannerinput banner < bannerinput
Je ne suis pas sûr de comprendre quelle est la différence entre la méthode avec > code> et la méthode avec
| code>.
Le> est un symbole de redirection, c'est comme un drain dans un évier, il prend tout et la met dans le fichier mentionné. Alors que A | est un tuyau. Il permet aux données de circuler de la production d'un processus à l'entrée d'un autre processus.
Les deux fenêtres et Linux redirigeront C'est le cas le plus courant, mais de nombreux autres types de redirection sont possibles. Sur Linux, vous pouvez rediriger stdout code> dans un fichier si vous exécutez le programme comme celui-ci: p>
my_program> quelque_file code> p>
stdout code> à tout ce qui prend en charge l'interface "descripteur de fichier", telle qu'un tuyau, une prise, un fichier et divers autres choses. P>
Tout nombre de choses peut arriver aux trois descripteurs de fichiers standard 0, 1 et 2. Tout le monde peut lancer un nouveau processus avec les descripteurs de fichiers attachés à tout ce qu'ils aiment. p>
Par exemple, l'écran GNU met la sortie dans un tuyau et permet une mise en place dynamique d'une session. SSH prend la sortie et le renvoie à l'autre extrémité. Et bien sûr, tous les nombreux redirecteurs de shell utilisent régulièrement la manipulation des descripteurs de fichiers. P>
Un exemple simple d'un cas où on pourrait vouloir rediriger le stdout est lors du passage des informations à un autre programme. La commande UNIX / Linux qui redirigerait le PS code> génère une liste de processus appartenant à l'utilisateur actuel. Si cette liste était longue et que vous vouliez rechercher un processus particulier, vous pouvez entrer
stdout code> de
ps code> au
stdin code> de
grep truc code>. p> p>
Jusqu'à présent, toutes les réponses ont été dans le contexte de la chose (Shell, peu importe) qui invoque le programme. Le programme lui-même peut faire stdout code> autre que le terminal. La bibliothèque standard C fournit
freopen code> qui permet au programmateur Rediriger Stdout dans n'importe quel environnement conforme. POSIX fournit un certain nombre d'autres mécanismes (
popen code>,
fdopen code>, ...) qui donne au programmateur encore plus de contrôle. Je soupçonne que Windows fournit des mécanismes analogues. P>
pour un programme d'avoir a peut-être envoyé le message au siège de la NASA. p> p> stdout code> il doit être exécuté sur une implémentation hébergée (une avec un système d'exploitation), ou sur une implémentation autonome avec des extras em>. < P> J'ai du mal à comprendre une telle mise en œuvre sans une console, mais supposons que Mars Rover a un système d'exploitation complet et est programmé en C (ou C ++) et n'a pas cette console < / p>
Sur la ligne de commande, je peux faire de type dans quelque chose comme
programme.exe> sortie.txt tout> et tout sur
stdout code> sera écrit sur
sortie.txt code> au lieu de la console. Les scripts CGI fonctionnent de cette façon aussi; Le programme écrit le HTML sur
stdout code> et le serveur Web fournit la sortie sur la connexion HTTP.
En outre,
inetd code> connectera
stdin code> et
stdout code> sur une prise.