• Non ci sono risultati.

Programmation Système TP 4 : détails des processus

N/A
N/A
Protected

Academic year: 2021

Condividi "Programmation Système TP 4 : détails des processus"

Copied!
2
0
0

Testo completo

(1)

Programmation Système TP 4 : détails des processus

Juliusz Chroboczek Matthieu Boutier

15 octobre 2012

Exercice 1 (Rappels sur lseek). Écrivez un programme qui prend en paramètre de ligne de commande deux noms de fichier f et g, puis recopie f en g en inversant l’ordre des octets qui le constituent : si f consiste de la suite d’octets a1· · · an, alors g devra contenir la suite d’octets an· · · a1.

Votre programme devra utiliser une quantité bornée de mémoire, mais il devra faire des entrées sorties de taille raisonnable — un tampon de 4096 octets est un bon choix.

Exercice 2. Pour chacun des fragments de code suivants, indiquez quel est le contenu final du fichier f . Vérifiez votre hypothèse à l’aide de la commande hexdump -C1.

1. fd = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

write(fd, "Ouille", 6);

lseek(fd, 2, SEEK_SET);

write(fd, "Aie", 3);

close(fd);

2. fd = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

write(fd, "Ouille", 6);

lseek(fd, 2, SEEK_CUR);

write(fd, "Aie", 3);

close(fd);

3. fd = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

fd2 = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

write(fd2, "Ouille", 6);

write(fd, "Aie", 3);

close(fd);

close(fd2);

4. fd = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

fork();

write(fd, "Ouille", 6);

close(fd);

5. fd = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

pid = fork();

if(pid == 0)

lseek(fd, 2, SEEK_SET);

1. J’ai omis le code de gestion des erreurs de ces fragments de code. J’ai le droit — vous pas.

1

(2)

else

sleep(2);

write(fd, "Ouille", 6);

close(fd);

6. fd = open("exemple", O_CREAT | O_WRONLY | O_TRUNC, 0666);

fd2 = dup(fd);

write(fd2, "Ouille", 6);

write(fd, "Aie", 3);

close(fd);

close(fd2);

Exercice 3.

1. Écrivez une fonction premier qui teste si l’entier passé en paramètre est premier en util- isant l’algorithme naïf. Écrivez un programme qui utilise cette fonction pour afficher la liste des entiers de la forme 2n− 1 qui sont premiers, pour n allant de 1 à 31.

2. Modifiez votre programme pour que chaque appel à premier se fasse dans un processus séparé ; vous utiliserez la valeur de retour du processus pour indiquer si l’entier était premier.

3. Modifiez votre programme pour qu’il garantisse que l’affichage des résultats se fait dans l’ordre croissant ; vous utiliserez pour cela un appel à waitpid avec un premier paramètre non nul.

Exercice 4 (S’il vous reste du temps). Modifiez le programme du premier exercice ci-dessus pour qu’il inverse l’ordre des lignes du fichier plutôt que l’ordre des octets.

2

Riferimenti

Documenti correlati

proportions follow the pattern observed for interlimb strength proportions, steadily increasing from more saltatory to more suspensory primates. For distal proportions,

Una delle caratteristiche di questi prontuari deve essere quella di mettere bene in evidenza le differenti epidemiologie delle situazioni cliniche: da quella delle

•The systematic literature review points up the importance and potential of ultrasonography in the management of psoriatic arthritis and psoriasis but it also underlines the need of

In effetti, la “legge Leonetti” era stata approvata a seguito del decesso di Vincent Humbert (settembre 2003), ma seppur avesse portato a scelte etiche e

Naturally, just like the principle of least action and Lagrangian mechanics are equivalent to Newton’s equation of motion, this novel variational approach should constitute a way

In this respect Polyakov loop correlators turn out to be a perfect tool to study these effects, since as the temperature increases these higher order corrections become rather

Modifiez cat2 pour qu’il concatène dans ce fichier les divers fichiers qui lui sont donnés à la suite sur la ligne de commande..

Écrivez un programme qui crée deux processu, un père qui affiche à l’aide de l’appel système write la chaîne "Je suis le père\n", et un fils qui affiche la chaîne