correction code
This commit is contained in:
@@ -25,19 +25,29 @@ int duper(char **argv, char *output){
|
||||
int wstatus;
|
||||
pid_t pid = fork();
|
||||
|
||||
if(pid < 0) return 1;
|
||||
if(pid < 0) {
|
||||
|
||||
printf("Something went wrong in duper.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
//Child
|
||||
else if (pid == 0){
|
||||
|
||||
// ouverture en mode write
|
||||
FILE *file = fopen(output, "w");
|
||||
if(!file) exit(-1);
|
||||
|
||||
if(!file) {
|
||||
printf("Something went wrong in duper.\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
execvp(argv[0],argv);
|
||||
|
||||
@@ -65,17 +65,21 @@ int exec_cmd(char** args){
|
||||
int wstatus;
|
||||
pid_t pid = fork();
|
||||
|
||||
if (pid < 0) exit(-1);
|
||||
if (pid < 0){
|
||||
free(args);
|
||||
exit(-1);
|
||||
}
|
||||
// Child
|
||||
else if (pid == 0){
|
||||
|
||||
if(strcmp(args[0] , "run") != 0) exit(-1);
|
||||
|
||||
if(execvp(args[1], args + 1) != 0) exit(-1);
|
||||
exit(0);
|
||||
|
||||
//if(execvp(args[0], args) == -1) exit(-1);
|
||||
//if(strcmp(args[0] , "run") != 0) exit(-1);
|
||||
|
||||
//on execute la commande et on return son code de fin
|
||||
exit(execvp(args[1], args + 1));
|
||||
|
||||
//if(execvp(args[1], args + 1) != 0) exit(-1);
|
||||
//exit(0);
|
||||
|
||||
}
|
||||
|
||||
//Uncle... You're again ! Oh it's not my uncle it's my daddy !
|
||||
|
||||
Reference in New Issue
Block a user