Ajout de l'exo 3
This commit is contained in:
parent
2402cba956
commit
0cecb7b410
18
README.md
18
README.md
@ -342,3 +342,21 @@ XXXXXXXX BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB BB |CCCCCCCCCCCCCCCC|
|
|||||||
## Exercice 3
|
## Exercice 3
|
||||||
|
|
||||||
> Que fait le programme [copy1byte.c](TP3/Exo3/copy1byte.c) ? Décommentez la ligne du `fork`. Expliquer ce qui se passe.
|
> Que fait le programme [copy1byte.c](TP3/Exo3/copy1byte.c) ? Décommentez la ligne du `fork`. Expliquer ce qui se passe.
|
||||||
|
|
||||||
|
> Le programme [copy1byte.c](TP3/Exo3/copy1byte.c) copie le fichier `source` dans le fichier `destination` en utilisant des appels systèmes. Quand on décommente la ligne du `fork`, ce dernier est effectué après l'ouverture du fichier, donc le père et le fils ont deux descripteurs de fichier différents, l'offset n'est pas partagé donc le contenu du fichier sera celui du dernier à écrire.
|
||||||
|
|
||||||
|
## Exercice 4
|
||||||
|
|
||||||
|
> Ecrire un programme qui crée un processus fils.
|
||||||
|
|
||||||
|
>Dans le fils :
|
||||||
|
|
||||||
|
- imprimer le retour de fork(), getpid(), getppid().
|
||||||
|
- bloquer 4 secondes (sleep).
|
||||||
|
- se terminer avec exit(2).
|
||||||
|
|
||||||
|
> Dans le père :
|
||||||
|
|
||||||
|
- imprimer le retour de fork(), getpid(), getppid().
|
||||||
|
- attendre la fin de son fils (wait()), et imprimer son code de retour.
|
||||||
|
- afficher alors la liste de tous les processus actifs (execl() avec ps -ef).
|
@ -29,7 +29,7 @@ int main(int argc,char * argv[]){
|
|||||||
outfd = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0644);
|
outfd = open(argv[2],O_WRONLY|O_CREAT|O_TRUNC,0644);
|
||||||
assert(outfd >= 0);
|
assert(outfd >= 0);
|
||||||
|
|
||||||
//p=fork(); // <- decommentez cette ligne
|
p=fork(); // <- decommentez cette ligne
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user