Jets standard
Les jets de norme de sont les canaux preconnected d'entrée et de rendement entre un programme informatique et son environnement (typiquement une borne des textes de ) quand il commence l'exécution. Ces raccordements standard sont fournis dans le Unix et le Unix-comme les environnements d'exécution du C et du C++ des logiciels d'exploitation de , et leurs successeurs. Les trois raccordements de l'entrée-sortie s'appellent l'entrée standard , le rendement standard et l'erreur type .
Fond
Dans la plupart des logiciels d'exploitation antidatant Unix, les programmes ont dû explicitement se relier aux données appropriées d'entrée et de rendement. Sur plusieurs de ces systèmes, ceci a pu être un défi de programmation intimidating représenté par des complexités OS-spécifiques telles qu'obtenir des arrangements d'environnement de commande, accéder à une table de dossier locale, déterminer l'ensemble de données prévu, et traiter le cas correct d'un lecteur de cartes, d'une commande de bande magnétique, d'une unité de disques, imprimante ligne par ligne, d'un perforateur de cartes, ou d'une borne interactive.Unix a fourni plusieurs avances d'inauguration, une dont était fournir les dispositifs abstraits de : elle a enlevé le besoin d'un programme de savoir ou s'inquiéter avec ce qu'un peu les dispositifs il communiquaient. Des logiciels d'exploitation plus anciens ont forcé sur le programmeur une structure record et, fréquemment la sémantique de données du et la commande d'appareil non-orthogonales. Unix a éliminé cette complexité avec le concept d'un train de données de données : un ordre commandé des bytes de données qui peuvent être lus jusqu'au de fin de fichier. Un programme peut également écrire des bytes comme désirés et n'a pas besoin (et ne pas pouvoir facilement) de déclarer combien là seront, ou comment ils sera groupé.
Une autre percée d'Unix était d'associer automatiquement l'entrée et le rendement par transfèrent-le le programme (et le programmeur) n'a fait absolument rien à établir l'entrée et le rendement pour un programme typique d'entrée-processus-rendement (à moins qu'il choisissait un paradigme différent). En revanche, les logiciels d'exploitation précédents ont habituellement exigé de quelque-souvent langage de contrôle complexe d'établir des raccordements, ou le fardeau équivalent a dû être orchestré par le programme.
Puisqu'Unix a fourni les jets standard, l'environnement d'exécution d'Unix C a été obligé pour le soutenir aussi bien. En conséquence, la plupart des environnements d'exécution de C (et descendants du c), indépendamment du du système d'exploitation, fournissent la fonctionnalité équivalente.
Entrée standard (stdin) < ! -- Cette section est liée du COMMAND.COM -->
L'entrée standard est des données (souvent texte) entrant dans un programme. Les transferts de données de demandes de programme au moyen du ont lu l'opération de . Non tous les programmes exigent l'entrée. Par exemple, le dir de ou le programme du LS (qui montrent des noms de dossier contenus dans un annuaire) effectue son opération sans n'importe quelle entrée de données de jet.À moins que le ait réorienté , l'entrée est prévue de la borne des textes de qui a commencé le programme.
Le descripteur de dossier pour l'entrée standard est 0 (zéro) ; la variable correspondante du À moins que le ait réorienté , le rendement standard est la borne des textes de qui a lancé le programme. Le descripteur de dossier pour le rendement standard est 1 (un) ; la variable correspondante du Il est acceptable-et normal-pour le rendement standard de et l'erreur type de à diriger vers la même destination, telle que la borne des textes. Les messages apparaissent dans le même ordre que le programme leur écrit, à moins que l'amortissement soit impliqué. (Par exemple, une situation courante est quand le jet d'erreur type est non amortie mais le train de sorties standard ligne-est protégé ; dans ce cas-ci, le texte écrit à l'erreur type plus tard peut paraître sur la borne plus tôt, si l'amortisseur standard du train de sorties n'est pas encore plein.) Le descripteur de dossier pour l'erreur type est 2 ; la variable correspondante du Exemple : Quelques programmes de GUI, principalement sur Unix, écrivent toujours corrigent l'information à l'erreur type. .
d'USS Tacony ( Rendement standard (stdout) < ! -- Cette section est liée du COMMAND.COM -->
Le rendement standard est le jet où un programme écrit ses données de rendement. Le transfert de données de demandes de programme avec le écrivent l'opération de . Non tous les programmes produisent du rendement. Par exemple le dossier de retitrent la commande de (différemment appelée le le système mv , le mouvement , de ren ) est silencieux sur le succès. Erreur type (stderr) < ! -- Cette section est liée du COMMAND.COM -->
L'erreur type est un autre train de sorties typiquement employé par des programmes pour produire les messages d'erreur ou les diagnostics c'est un indépendant de jet de rendement standard et peut être réorienté séparément. La destination habituelle est la borne des textes de qui a commencé le programme pour fournir la meilleure possibilité d'être vu même si le rendement standard de est réorienté (ainsi pas aisément observé). Par exemple, le rendement d'un programme dans une canalisation est réorienté à l'entrée du prochain programme, mais les erreurs de chaque programme vont toujours directement à la borne des textes. Chronologie
les années 50 : Fortran
Le Fortran a eu l'équivalent des descripteurs de dossier d'Unix, UNIT=5 pour le stdin, et UNIT=6 pour le stdout. lang=" de 1960 : Algol 60
Algol 60 a été critiqué pour n'avoir aucun accès de dossier standard. 1968 : Algol 68
Le équipements d'entrée et de rendement de s d'algol 68 des 'désigné collectivement sous le nom du transput. Le Koster a coordonné la définition de la norme du transput de . Cet inclus standard : stand in, stand out, stand error et stand back. force : ( VRAI nombre ; getf (stand dedans, ($g$, nombre)); printf (($" ; Le nombre est : " ; " de g (6.4) ; OU " ; $, nombre)); # OU # putf (se tenir dehors, ($" ; Le nombre est : " ; " de g (6.4) ; ! " ; $, nombre)); caractère NL (se tenir dehors) )
les années 70 : C et Unix
Dans le stdin du langage de programmation du C de , le stdout et les jets de stderr ont été attachés aux descripteurs de dossier existants d'Unix 0, 1 et 2 respectivement. les années 80 : C++
Au C++ , les jets standard sont mentionnés par le cin de , le cout de et les objets du cerr de (voir le Iostream ). GUIs
Les interfaces utilisateurs graphiques (GUIs) se servent rarement des jets standard. En conséquence, la réorientation des programmes de GUI ou la construction d'une canalisation de GUI n'est ni pratique ni utile. L'analogue le plus proche est probablement le découpage de (ou le copiant ) d'un application et collant dans des autres. Puisque des opérations d'utilisateur manuelles sont exigées, le déplacement d'un grand nombre de pâtes de n'est pas particulièrement efficace. Une exception notable est le logiciel de gestion de fenêtres de carrelage de de Dwm , qui emploie son stdin pour montrer l'information de statut. Voir également
Redirection de (Unix)
Canalisation de (Unix)
Jet de (ordinateur)
Entrée-sortie
Entrée-sortie de fichier C de Random links: 1732 | Oaktown, Indiana | Steven Weinberg | Testaferrata | 1863)