ajout fichiers

This commit is contained in:
lecorre
2021-09-22 15:12:02 +02:00
parent 84ccdcaa4e
commit f497652e47
15 changed files with 294 additions and 0 deletions

25
TP2/Exemples/Exemple1.c Normal file
View File

@@ -0,0 +1,25 @@
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
pid_t pid; // pour récupérer le pid du nouveau processus
int main() {
switch(pid = fork()) {
case (pid_t) -1: // lappel de fork a échoué
perror("Création de processus");
exit(2);
case (pid_t)0: // ici, ça concerne le processus fils
printf("valeur de fork dans le fils = %d\n",pid);
printf("je suis le processus %d de père %d\n",getpid(), getppid());
printf("fin du processus fils\n");
exit(0);
default: // ici, cest le processus père
printf("valeur de fork dans le père = %d\n",pid);
printf("je suis le processus %d de père %d\n",getpid(), getppid());
printf("fin du processus père\n");
}
return EXIT_SUCCESS;
}

20
TP2/Exemples/Exemple2.c Normal file
View File

@@ -0,0 +1,20 @@
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n = 5;
pid_t fils_pid;
for (int i=0; i < n; i++) {
fils_pid = fork();
if (fils_pid > 0) break;
printf("Processus %d avec père %d n=%d\n", getpid(), getppid(),i);
}
return EXIT_SUCCESS;
}

26
TP2/Exemples/Exemple3.c Normal file
View File

@@ -0,0 +1,26 @@
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n = 5;
pid_t fils_pid;
for (int i=0; i < n; i++) {
fils_pid = fork();
if (fils_pid > 0) break;
printf("Processus %d avec père %d\n", getpid(), getppid());
}
for (int j = 0; j < 10000; j++) {
for (int k=0; k < 1000; k++) {
;
}
}
return EXIT_SUCCESS;
}

BIN
TP2/Exemples/a.out Executable file

Binary file not shown.

43
TP2/Exercices/Ex1.c Normal file
View File

@@ -0,0 +1,43 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char const *argv[]) {
int fluxe, fluxs, readchar;
char caractere;
fluxe = open("test.txt", O_RDONLY);
fluxs = open("test2.txt", O_WRONLY | O_CREAT, 0600);
pid_t pid;
for (int i = 0; i<10;i++) {
if (fluxe) {
readchar = read(fluxe, &caractere, sizeof(char));
}
if (fluxs) {
write(fluxs, &caractere, sizeof(char));
}
}
pid = fork();
if (pid == 0) {
while(readchar != 0) {
if (fluxe) {
readchar = read(fluxe, &caractere, sizeof(char));
}
if (fluxs && readchar != 0) {
write(fluxs, &caractere, sizeof(char));
}
}
close(fluxe);
close(fluxs);
}
return EXIT_SUCCESS;
}

12
TP2/Exercices/Ex2.c Normal file
View File

@@ -0,0 +1,12 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]) {
write(1, "mammouth", 8);
pid_t psid = fork();
if (psid == 0) {
write(1, "\nlapinou", 8);
}
return EXIT_SUCCESS;
}

15
TP2/Exercices/Ex4.c Normal file
View File

@@ -0,0 +1,15 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]) {
pid_t pid = fork();
if (pid == 0) {
printf("Mon père est %d\n", getppid());
sleep(0.2);
printf("Mon nouveau père est %d\n", getppid());
}
sleep(0.1);
return EXIT_SUCCESS;
}

BIN
TP2/Exercices/a.out Executable file

Binary file not shown.

18
TP2/Exercices/test.txt Normal file
View File

@@ -0,0 +1,18 @@
Maître Corbeau, sur un arbre perché,
Tenait en son bec un fromage.
Maître Renard, par l'odeur alléché,
Lui tint à peu près ce langage :
Et bonjour, Monsieur du Corbeau.
Que vous êtes joli ! que vous me semblez beau !
Sans mentir, si votre ramage
Se rapporte à votre plumage,
Vous êtes le Phénix des hôtes de ces bois.
À ces mots, le Corbeau ne se sent pas de joie ;
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le Renard s'en saisit, et dit : Mon bon Monsieur,
Apprenez que tout flatteur
Vit aux dépens de celui qui l'écoute.
Cette leçon vaut bien un fromage, sans doute.
Le Corbeau honteux et confus
Jura, mais un peu tard, qu'on ne l'y prendrait plus.

18
TP2/Exercices/test2.txt Normal file
View File

@@ -0,0 +1,18 @@
Maître Corbeau, sur un arbre perché,
Tenait en son bec un fromage.
Maître Renard, par l'odeur alléché,
Lui tint à peu près ce langage :
Et bonjour, Monsieur du Corbeau.
Que vous êtes joli ! que vous me semblez beau !
Sans mentir, si votre ramage
Se rapporte à votre plumage,
Vous êtes le Phénix des hôtes de ces bois.
À ces mots, le Corbeau ne se sent pas de joie ;
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le Renard s'en saisit, et dit : Mon bon Monsieur,
Apprenez que tout flatteur
Vit aux dépens de celui qui l'écoute.
Cette leçon vaut bien un fromage, sans doute.
Le Corbeau honteux et confus
Jura, mais un peu tard, qu'on ne l'y prendrait plus.