Tristan Crolard - François Pottier
Rappelons que les sujets et corrigés de chaque TD sont accessibles sur
les machines des élèves, dans ~pottier/TD-Systems-98-99/
.
Essayez les programmes, modifiez-les, exécutez-les pas-à-pas, etc.
pour mieux comprendre leur fonctionnement.
int system(const char *command); FILE *popen(const char *command, const char *type); int pclose(FILE *stream); int dup(int fildes); int pipe(int fildes[2]); char *tmpnam(char *s);
La fonction system permet de lancer une commande comme si elle était lancée depuis le shell. Les entrées standard, sortie standard et sortie d'erreur sont transmises à la commande.
La fonction dup permet de dupliquer un descpriteur de la table des fichier ouverts, le premier descripteur libre est toujours choisi.
usage: sup commande fichierpermettant de simuler:
commande > fichier
usage: inf commande fichierpermettant de simuler:
commande < fichier
usage: supp commande fichierpermettant de simuler:
commande >> fichier
usage: infsup commande fichier1 fichier2permettant de simuler:
commande < fichier1 > fichier2
usage: seq commande1 commande2permettant de simuler:
commande1 ; commande2
usage: seqinfsup commande1 fichier1 commande2 fichier2permettant de simuler:
commande1 < fichier1 ; commande2 > fichier2
usage: app commande1 commande2qui lance la commande1 (dont on suppose qu'elle accepte un nom de fichier comme premier argument) sur le fichier obtenu sur la sortie standard de commande2. Par exemple:
usage: app ghostview 'gunzip -c fichier.ps.gz'
usage: tube commande1 commande2permettant de simuler:
commande1 | commande2Exemple :
tube 'ls &' moreRemarquer le lancement indispensable de ls en arriere-plan.
pipe ls more