correction code

This commit is contained in:
2026-04-17 17:28:11 +02:00
parent 53548f9159
commit b74419747b
5 changed files with 30 additions and 15 deletions
+2 -1
View File
@@ -42,4 +42,5 @@ printf("%d\n", r1);
int r2 = execute_me("wrong", argv); int r2 = execute_me("wrong", argv);
printf("%d\n", r2); printf("%d\n", r2);
}*/ }
*/
+1 -1
View File
@@ -44,7 +44,7 @@ void piped(){
char buffer[2048]; char buffer[2048];
read(fd[0], buffer, sizeof(buffer)); read(fd[0], buffer, sizeof(buffer));
printf("My child sends me : %s\n", buffer); printf("My child sends me : %s", buffer);
close(fd[0]); close(fd[0]);
wait(NULL); wait(NULL);
+1 -1
View File
@@ -14,7 +14,7 @@ int fibo (int n){
} }
int wait_child(int x){ int wait_child(int x){
if(x < 0) return -1; if(x < 0) return 1;
int wstatus; int wstatus;
pid_t pid = fork(); pid_t pid = fork();
+15 -5
View File
@@ -25,19 +25,29 @@ int duper(char **argv, char *output){
int wstatus; int wstatus;
pid_t pid = fork(); pid_t pid = fork();
if(pid < 0) return 1; if(pid < 0) {
printf("Something went wrong in duper.\n");
return 1;
}
//Child //Child
else if (pid == 0){ else if (pid == 0){
// ouverture en mode write // ouverture en mode write
FILE *file = fopen(output, "w"); FILE *file = fopen(output, "w");
if(!file) exit(-1); if(!file) {
printf("Something went wrong in duper.\n");
exit(-1);
}
int fno = fileno(file); int fno = fileno(file);
if(dup2(fno, STDOUT_FILENO) == -1) exit(-1); if(dup2(fno, STDOUT_FILENO) == -1){
printf("Something went wrong in duper.\n");
exit(-1);
}
fclose(file); fclose(file);
execvp(argv[0],argv); execvp(argv[0],argv);
+11 -7
View File
@@ -65,17 +65,21 @@ int exec_cmd(char** args){
int wstatus; int wstatus;
pid_t pid = fork(); pid_t pid = fork();
if (pid < 0) exit(-1); if (pid < 0){
free(args);
exit(-1);
}
// Child // Child
else if (pid == 0){ else if (pid == 0){
if(strcmp(args[0] , "run") != 0) exit(-1); //if(strcmp(args[0] , "run") != 0) exit(-1);
if(execvp(args[1], args + 1) != 0) exit(-1); //on execute la commande et on return son code de fin
exit(0); exit(execvp(args[1], args + 1));
//if(execvp(args[0], args) == -1) exit(-1); //if(execvp(args[1], args + 1) != 0) exit(-1);
//exit(0); //exit(0);
} }
//Uncle... You're again ! Oh it's not my uncle it's my daddy ! //Uncle... You're again ! Oh it's not my uncle it's my daddy !