REDIRECTIONS
Opé d'E/S faites par des processus
▪ fichier Û n° interne au processus = descripteur
pour les fichiers std :
|
|
|
descripteur N°
d'E/S std |
|
|
Entrée std |
cin>> |
0 |
fichier clavier |
|
Sortie std |
cout<< |
1 |
terminaux d'affichage |
|
Sortie std des erreurs |
cerr<< |
2 |
▪ contrôle de l'accès pour l'opé
demandée en fonction des droits
Redirections des E/S std au
niveau shell
Sorties std
(cout<<…)
redirigées vers ficCOUT
cde >ficCOUT
Þ écrase
cde >>ficCOUT
Þ ajoute en fin
Sorties std d'erreurs
(cerr<<…)
redirigées vers ficCERR
cde 2>>ficCERR
Þ ajoute en fin
cde 2>ficCERR
Þ écrase
Entrées std
(cin>>…)
redirigées vers ficCIN
cde <ficCIN
Rq : on peut faire :
cmde >>ficCOUT
<ficCIN
cde peut être ps, ls,
le nom d'un exécutable, etc.
La
redirection des E/S fait taper en aveugle
Attn : pour les affichages de contrôle
cout<<…<<endl;
vide
le buffer C++,
sinon Þ pb de détection des bugs
Pipes = tubes = comm° entre processus
ls | more Þ affichage page par page
more Þ lecture sur entrée std par défaut
cde1 >fic
cde2 <fic
Û cde1 | cde2
Û la sortie std du processus
de cde1 est redirigée vers l'entrée std du processus de cde2
![]()
0 1 0 1
![]()
![]()
![]()
![]()
ps
1 S std E std ps 2
2
2
wc –l Þ compte nb lignes
cde1 | cde2 | cde 3 Þ la sortie std du processus 2 est redirigée vers l'E
std du processus 3
ls –l Þ affiche le contenu du répertoire ligne par ligne