This commit is contained in:
Arnaud NGWALA NGWALA 2023-09-22 16:16:04 +02:00
parent dae2d232ef
commit 16fee12b7d
3 changed files with 73 additions and 1 deletions

35
SCR3.1/TP3/ex5.c Normal file
View File

@ -0,0 +1,35 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#define SIZE 1000
int search(const unsigned char * t,int start,int end)
{
for (int i = start; i <= end; i++){
int
}
int main(int argc , char * argv[])
{
int i;
unsigned char arr[SIZE];
srandom(time(NULL));
for (i = 0; i < SIZE; i++)
arr[i] = (unsigned char) (random() % 255) + 1;
printf("Enter a number between 0 and %d: ", SIZE);
scanf(" %d", &i);
if (i >= 0 && i < SIZE) arr[i] = 0;
if (search(arr,0,SIZE-1))
printf("Found !\n");
else
printf("Not found !\n");
return EXIT_SUCCES;
}

37
SCR3.1/TP3/fils.c Normal file
View File

@ -0,0 +1,37 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(void){
pid_t p;
int status;
p = fork();
switch ((int) p) {
case 0 :
printf("Retour de fork : %d, je suis le fils !\n", (int) p);
printf("Mon PID est : %d\n", (int) getpid());
printf("Mon PPID est : %d\n", (int) getppid());
sleep(4);
exit(2);
break;
case -1:
printf("Ca s'est mal passé, aucun fils n'aura été engendré");
exit(2);
break;
default :
printf("Retour de fork : %d, je suis le père\n" , (int) p);
printf("Mon PID est : %d\n", (int) getpid());
printf("Mon PPID est : %d\n", (int) getppid());
wait(&status);
printf("Voici le code a renvoyé %d en code de sortie\n", WEXITSTATUS(status));
execl("/usr/bin/ps", "ps", "-ef", NULL);
exit(2);
}
return EXIT_SUCCESS;
}

View File

@ -9,4 +9,4 @@ Deuxième code : Le fork est avant l'ouverture donc chaque processus à son prop
Exercice 3) Exercice 3)
Le code copie le contenu d'une fichier vers un autre Le code copie le contenu d'une fichier vers un autre
En décommentant le fork En décommentant le fork, deux processus lisent et écrivent simultanément en espérant que dans l'idéal avec deux processus A et B, A lise et écrive puis qu'après B fasse de même ce qui n'est pas forcément le cas et crée des fichiers de sortie avec un contenu différent que celui d'entrée