ajout fichiers TP

This commit is contained in:
lecorre 2021-10-08 15:33:49 +02:00
parent 8f44fb0636
commit 1cb87a23e7
23 changed files with 193 additions and 0 deletions

BIN
Controle/Exercice 1/A Executable file

Binary file not shown.

17
Controle/Exercice 1/A.c Normal file
View File

@ -0,0 +1,17 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]) {
char* arg[3] = {"B1", "1", NULL};
if (!fork()) {
execvp("B1", arg);
} else {
if (!fork()) {
arg[1] = "2";
execvp("B1", arg);
}
}
sleep(5);
return EXIT_SUCCESS;
}

BIN
Controle/Exercice 1/A.o Normal file

Binary file not shown.

BIN
Controle/Exercice 1/B1 Executable file

Binary file not shown.

17
Controle/Exercice 1/B1.c Normal file
View File

@ -0,0 +1,17 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]) {
char* arg[2] = {NULL, NULL};
if (!fork()) {
if (argv[1][0] == '1') {
arg[0] = "C1";
} else {
arg[0] = "C2";
}
execvp(arg[0], arg);
}
sleep(5);
return EXIT_SUCCESS;
}

BIN
Controle/Exercice 1/B1.o Normal file

Binary file not shown.

BIN
Controle/Exercice 1/C1 Executable file

Binary file not shown.

8
Controle/Exercice 1/C1.c Normal file
View File

@ -0,0 +1,8 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]) {
sleep(5);
return EXIT_SUCCESS;
}

BIN
Controle/Exercice 1/C1.o Normal file

Binary file not shown.

BIN
Controle/Exercice 1/C2 Executable file

Binary file not shown.

8
Controle/Exercice 1/C2.c Normal file
View File

@ -0,0 +1,8 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int main(int argc, char const *argv[]) {
sleep(5);
return EXIT_SUCCESS;
}

BIN
Controle/Exercice 1/C2.o Normal file

Binary file not shown.

View File

@ -0,0 +1,18 @@
CC=gcc
A: A.o B1
$(CC) -o A A.o
B1: B1.o C1 C2
$(CC) -o B1 B1.o
C1: C1.o
$(CC) -o C1 C1.o
C2: C2.o
$(CC) -o C2 C2.o
run:
A

View File

@ -0,0 +1 @@
watch -n 1 ps -o cmd -C A,B1,C1,C2 --forest dans un autre terminal

29
ExerciceSignaux.c Normal file
View File

@ -0,0 +1,29 @@
#include <sys/wait.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
pid_t pid;
int status;
pid = fork();
if (pid != 0) {
printf("le pid du fils est %d\n", pid);
waitpid(pid, &status, WUNTRACED);
if (WIFSIGNALED(status)) {
printf("tué par le signal %d\n", WTERMSIG(status));
} else if (WIFSTOPPED(status)) {
printf("arrêté par le signal %d\n", WSTOPSIG(status));
}
} else {
while(1){}
}
exit(EXIT_SUCCESS);
}

21
TP3/Ex1.c Normal file
View File

@ -0,0 +1,21 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(int argc, char const *argv[]) {
pid_t pid;
pid = fork();
char *lel[3] = {"ls", "-l", NULL};
if (pid==0) {
printf("pid de mon papa : %d\n", getppid());
execvp("ls", lel);
} else {
printf("pid de mon fiston : %d\n", pid);
wait(NULL);
}
return EXIT_SUCCESS;
}

30
TP3/Ex2.c Normal file
View File

@ -0,0 +1,30 @@
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
int main(int argc, char *argv[]) {
pid_t pid;
int i;
if (argc < 2) {
perror("Pas assez d'arguments");
return EXIT_FAILURE;
}
if (argc > 9) {
perror("Trop d'arguments");
return EXIT_FAILURE;
}
pid = fork();
if (pid==0) {
printf("pid de mon papa : %d\n", getppid());
execvp(argv[1], argv+1);
} else {
printf("pid de mon fiston : %d\n", pid);
wait(NULL);
}
return EXIT_SUCCESS;
}

30
TP3/Ex3.c Normal file
View File

@ -0,0 +1,30 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/wait.h>
int main(int argc, char *argv[]) {
int pid, fp, i, j;
char ch[4];
fp = open("fichier", O_RDWR);
pid = fork();
if (pid == 0) {
for (i = 0; i < 4; i++) {
read(fp, ch, 4);
printf("hello fils : %s\n", ch);
sleep(4);
}
} else {
for (j = 0; j < 3; j++) {
read(fp, ch, 4);
printf("Hello père : %s\n", ch);
sleep(5);
}
wait(NULL);
close(fp);
}
return 1;
}

13
TP3/Ex4.c Normal file
View File

@ -0,0 +1,13 @@
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char const *argv[]) {
int i = 0;
char* envstr = getenv("RUN_0");
while(envstr != NULL) {
printf("%s", envstr);
i++;
envstr = getenv("RUN_"+ (i+30));
}
return EXIT_SUCCESS;
}

BIN
TP3/a.out Executable file

Binary file not shown.

1
TP3/fichier Normal file
View File

@ -0,0 +1 @@
abcdefghijk127440)^liojh3uijb4567 k;ljilkj

BIN
TP3/fils1 Executable file

Binary file not shown.

BIN
a.out Executable file

Binary file not shown.