From db18a388c7199e007bfc77d9443167f29b0fedc8 Mon Sep 17 00:00:00 2001 From: Lucas Date: Tue, 14 Apr 2026 23:19:24 +0200 Subject: [PATCH] dup.c --- AnimalProcessing/Proficiencies/dup.c | 65 ++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/AnimalProcessing/Proficiencies/dup.c b/AnimalProcessing/Proficiencies/dup.c index e69de29..3a7fb6f 100644 --- a/AnimalProcessing/Proficiencies/dup.c +++ b/AnimalProcessing/Proficiencies/dup.c @@ -0,0 +1,65 @@ +#include +#include +#include +#include +#include +#include +#include + +/* + __ + ___( o)> + \ <_. ) + `---' + +Coic coic +*/ + +int duper(char **argv, char *output){ + + + //int fd[2]; + //pipe(fd); + + int wstatus; + pid_t pid = fork(); + + if(pid < 0) return -1; + + //Child + else if (pid == 0){ + + // ouverture en mode write + FILE *file = fopen(output, "w"); + if(!file) exit(-1); + + + int fno = fileno(file); + if(dup2(fno, STDOUT_FILENO) == -1) exit(-1); + + fclose(file); + + execvp(argv[0],argv); + + exit(0); + } + + // Uncle... Daddy, mommy, well ikd + else { + + if(waitpid(pid, &wstatus, 0) == -1) return -1; + + if(WIFEXITED(wstatus)) printf("My child send me %i.\n", WEXITSTATUS(wstatus)); + + } + return 0; + +} + +/* +int main(int argc, char **argv) +{ + if(argc > 3) + duper(argv + 2, argv[1]); +} +*/