Le but de ce TD est d'appréhender la manipulation de processus par le biais de la librairie standard.
Que font chacun de ces deux programmes ?
#include <stdio.h> main() { int i; for (i=1;i<=8;i++) fork(); printf("%d\n",i); }
#include <stdio.h> int i=10; f(){ printf("%d\n",i++); } g(){ f();fork();f(); } main(){ g();g(); }
Que font chacun de ces deux programmes ?
#include <stdio.h> main() { printf("Bonjour\n"); if (fork()) printf("Papa\n"); else printf("Maman\n"); }
#include <stdio.h> main() { printf("Bonjour "); if (fork()) printf("Papa\n"); else printf("Maman\n"); }
Que font chacun de ces deux programmes ?
#include <stdio.h> main() { while (1) { if (fork()) break; else { putchar('.'); continue; } putchar(':'); } }
#include <stdio.h> main() { while (1) { if (!fork()) break; else { putchar('.'); continue; } putchar(':'); } }
Ecrire un programme qui crée N
processus fils qui affichent les entiers de 1 à N
(chaque processus fils n'affichant qu'un seul entier). Synchroniser les processus pour garantir que l'affichage se fait dans l'ordre croissant.
Ecrire un programme C
qui lit sur l'entrée standard stdin
un nom de fichier puis qui redirige l'entrée standard sur ce fichier, y lit le contenu et l'affiche sur la sortie standard, et recommence le tout (à partir de l'entrée au clavier du nom de fichier) indéfiniment.
Même exercice que précédemment, mais le flux de sortie est redirigé vers un autre processus qui passe toute minuscule en majuscule. Attention, le message demandant à chaque itération d'entrer le nom de fichier doit s'afficher sur l'écran ; et la lecture du nom sur le clavier.
Ecrire un programme qui compte le nombre de fois que la séquence Control-C
est entrée au clavier. Une précision : Control-C
poste le signal SIGINT
au processus à l'avant-plan.
Comment arrêter ce programme ?