Bonsoir!

J'ai un code donné par mon professeur à déchifrer soi-même, j'ai compris qu'il e redirige la sortie standard vers un fichier "tuv" ouvert en mode 'APPEND' operations peuvent être faites sur le fichier avec son nom comme variable mais après je suis un peu perdu avec toutes ses ouvertures et fermetures...
Il se dédouble et...

Connaissez vous un site même en anglais ou l'on puisse s'entrainer sur ce type d'exercices?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/wait.h>
int main(int argc, char*argv[]) { 
   int status;int pid;
   printf("démarrage\n");
   int f = open("tuv", O_RDWR|O_APPEND|O_CREAT, 0640);
   dup2(1,9);
   close(1);
   dup(f);
   close(f);
   pid = fork();
   if(pid > 0){
      wait(&status);
      close(1);
      dup(9);
      printf("fin test\n");
      }
   else{
      execlp("sh","sh",NULL);
   }
}