Redirection des descripteurs 1 et 2 vers le même fichier Redirection:descripteurs 1 et 2 vers le même fichier (mécanisme interne)

Pour envoyer la sortie standard et la sortie d’erreur standard dans le même fichier, il faut employer une syntaxe particulière. Voici ce qu’il ne faut pas écrire et la raison pour laquelle cela ne fonctionne pas.

Syntaxes incorrectes

$ commande 1> fichier 2> fichier  
$ commande 1> fichier 2>> fichier 

Le problème ne réside pas dans le fait que l’on ouvre deux fois le même fichier (ce qui est parfaitement légal au sein d’un même processus), mais qu’il y a un offset (position courante dans le fichier) associé à chaque ouverture. Quelles sont les conséquences ?

  • La séquence des résultats dans le fichier ne sera pas forcément représentative de l’ordre dans lequel se sont déroulés les événements.

  • Les résultats émis à travers les descripteurs 1 et 2 risquent de se chevaucher.

Les figures 1 et 2 présentent le mécanisme interne associé à la commande suivante :

$ find / -name passwd 1> resu 2> resu 

Première étape (cf. Figure 1)

Traitement de la redirection 1> resu :

Le shell ouvre le fichier resu (le fichier est créé avec une taille égale à 0) et l’associe au descripteur 1 (1), (2), (3), (4), (5). Lorsqu’un processus...

couv_EI7PRO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Présentation
Suivant
Regroupement de commandes avec les parenthèses