Merge branch 'master' of https://valarche@dwarves.iut-fbleau.fr/gitiut/valarche/ASR31-valarche-2021.git
This commit is contained in:
commit
2373ead0f9
31
Exemples/04-Exec/exemple1.c
Normal file
31
Exemples/04-Exec/exemple1.c
Normal file
@ -0,0 +1,31 @@
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int pid, fp, i, j;
|
||||
char ch[4];
|
||||
|
||||
fp = open("fichier", O_RDWR);
|
||||
pid = fork();
|
||||
|
||||
if (pid == 0) {
|
||||
for (i = 0; i < 4; i++) {
|
||||
read(fp, ch, 4);
|
||||
printf("hello fils : %s\n", ch);
|
||||
sleep(4);
|
||||
}
|
||||
} else {
|
||||
for (j = 0; j < 3; j++) {
|
||||
read(fp, ch, 4);
|
||||
printf("Hello père : %s\n", ch);
|
||||
sleep(5);
|
||||
}
|
||||
wait(NULL);
|
||||
close(fp);
|
||||
}
|
||||
return 1;
|
||||
}
|
18
TP/TP-exec.md
Normal file
18
TP/TP-exec.md
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
# TP : primitives de recouvrement de la famille ```exec```
|
||||
## Exercice
|
||||
Ecrivez un programme où un processus crée un fils, ce fils exécutant la commande ```ls –l```. Le père attend la fin de son fils. Par ailleurs, chacun des processus affiche son pid ; le fils affiche le pid de son père et le père affiche le pid de son fils.
|
||||
|
||||
## Exercice
|
||||
Améliorer le programme afin qu'il lance une commande shell passée sur la ligne de commande.
|
||||
|
||||
## Exercice
|
||||
On prend le programme de nom ```exemple1.c``` et on le modifie afin que le code du fils soit _recouvert_ par l'exécutable de nom ```fils1```.
|
||||
|
||||
## Exercice
|
||||
Positionner des variables d'environnement ```RUN_0, RUN_1, RUN_2...```, puis, écrire un programme les affichant les unes après les autres. Il faut utiliser la fonction ```getenv()``` pour récupérer la valeur d'une variable. Le programme devra afficher toutes les variables, jusqu'à ce qu'il y en ait une qui n'existe pas; par exemple s'il y a ```RUN_0```, ```RUN_1``` et ```RUN_3```, il ne faut afficher que la 0 et la 1 (comme la 2 n'existe pas, le programme doit s'arrêter).
|
||||
|
||||
|
||||
|
||||
### Exercice
|
||||
Refaire le contrôle de l'année dernière : ```Ctrle1ASR31-2020.pdf```
|
Loading…
Reference in New Issue
Block a user