diff --git a/TD1/Ex1.c b/TD1/Ex1.c new file mode 100644 index 0000000..582dc5e --- /dev/null +++ b/TD1/Ex1.c @@ -0,0 +1,46 @@ +#include +#include +#include "Ex1a.h" + + + +int main(int argc, char const *argv[]) { + int size; + int choix; + int i; + int menu = 1; + printf("Rentrez la taille de la matrice : "); + scanf("%d", &size); + + int* mat = malloc((size*size)*sizeof(int)); + for(i = 0; i<(size*size); i++) { + scanf("%d", &mat[i]); + } + + Afficher(size, mat); + + while (menu) { + printf("\n\n1. Multiplication scalaire\n2. Addition\n3. Multiplication\n4. Quitter\n\nChoix : "); + scanf("%d", &choix); + if (choix == 4) { + menu = 0; + } else if (choix == 1) { + MultiplicationScalaire(size, mat); + Afficher(size, mat); + + } else if (choix == 2) { + Addition(size, mat); + Afficher(size, mat); + + } else if (choix == 3) { + Multiplication(size, mat); + Afficher(size, mat); + } + } + + + + free(mat); + + return EXIT_SUCCESS; +} \ No newline at end of file diff --git a/TD1/Ex1.o b/TD1/Ex1.o new file mode 100644 index 0000000..78f374a Binary files /dev/null and b/TD1/Ex1.o differ diff --git a/TD1/Ex1a.c b/TD1/Ex1a.c new file mode 100644 index 0000000..adb3c7f --- /dev/null +++ b/TD1/Ex1a.c @@ -0,0 +1,40 @@ +#include +#include + +void Afficher(int size, int* mat) { + int i; + printf("\nVoici votre matrice :\n"); + for(i = 0; i +#include +#include + +pid_t pid; // pour récupérer le pid du nouveau processus + +int main() { + + switch(pid = fork()) { + case (pid_t) -1: // l’appel 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, c’est 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; +} diff --git a/TP2/Exemples/Exemple2.c b/TP2/Exemples/Exemple2.c new file mode 100644 index 0000000..6b65148 --- /dev/null +++ b/TP2/Exemples/Exemple2.c @@ -0,0 +1,20 @@ +#include +#include +#include +#include + +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; +} diff --git a/TP2/Exemples/Exemple3.c b/TP2/Exemples/Exemple3.c new file mode 100644 index 0000000..0d41695 --- /dev/null +++ b/TP2/Exemples/Exemple3.c @@ -0,0 +1,26 @@ +#include +#include +#include +#include + +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; +} \ No newline at end of file diff --git a/TP2/Exemples/a.out b/TP2/Exemples/a.out new file mode 100755 index 0000000..6d70eb3 Binary files /dev/null and b/TP2/Exemples/a.out differ diff --git a/TP2/Exercices/Ex1.c b/TP2/Exercices/Ex1.c new file mode 100644 index 0000000..e2cc430 --- /dev/null +++ b/TP2/Exercices/Ex1.c @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include +#include + +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; +} \ No newline at end of file diff --git a/TP2/Exercices/Ex2.c b/TP2/Exercices/Ex2.c new file mode 100644 index 0000000..04ce232 --- /dev/null +++ b/TP2/Exercices/Ex2.c @@ -0,0 +1,12 @@ +#include +#include +#include + +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; +} \ No newline at end of file diff --git a/TP2/Exercices/Ex4.c b/TP2/Exercices/Ex4.c new file mode 100644 index 0000000..5d7bbf9 --- /dev/null +++ b/TP2/Exercices/Ex4.c @@ -0,0 +1,15 @@ +#include +#include +#include + +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; +} \ No newline at end of file diff --git a/TP2/Exercices/a.out b/TP2/Exercices/a.out new file mode 100755 index 0000000..ed70d85 Binary files /dev/null and b/TP2/Exercices/a.out differ diff --git a/TP2/Exercices/test.txt b/TP2/Exercices/test.txt new file mode 100644 index 0000000..a821b56 --- /dev/null +++ b/TP2/Exercices/test.txt @@ -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. \ No newline at end of file diff --git a/TP2/Exercices/test2.txt b/TP2/Exercices/test2.txt new file mode 100644 index 0000000..a821b56 --- /dev/null +++ b/TP2/Exercices/test2.txt @@ -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. \ No newline at end of file