Enlever les mots constituant la redirection

Enlever les mots constituant la redirection - C - Programmation

Marsh Posté le 03-03-2016 à 11:03:40    

Bonjour,
J'implémente les redirections d'entrée sortie dans mon minishell. En compilant et en exécutant mon programme, les redirections se font normalement mais je rencontre un problème pour me débarasser des mots constituant la redirection.
 
Exemple: Lorsque je tape  
? echo essai > fichier.txt, le fichier créé contient "essai > fichier.txt" et non uniquement "essai" comme attendu. Je dois donc me débarasser de > et fichier.txt mais j'arrive pas à implémenter cela dans mon code.
Voici la partie qui implémente cette redirection:
 

Code :
  1. for (i = 0 ; mot[i] != NULL; i++) {
  2.            if (strcmp(mot[i],">" ) == 0)
  3.            {
  4.              freopen(mot[i+1], "w+", stdout); //redirige dans un fichier           
  5.            }
  6.            if (strcmp(mot[i],"<" ) == 0)
  7.            {
  8.              freopen(mot[i+1], "r", stdin); //redirige sur la sortie standard
  9.            }
  10.        }


 
J'ai pensé à la fonction strtok(), lorsque j'insère mot[i+1] = strtok(NULL, " \n\0" ); après freopen(mot[i+1], "w+", stdout); le nom du fichier s'en va mais j'ai du mal à trouver la solution pour le caractère '>'.
 
Merci d'avance pour l'aide.

Reply

Marsh Posté le 03-03-2016 à 11:03:40   

Reply

Marsh Posté le 05-03-2016 à 22:09:49    

Citation :

freopen(mot[i+1], "w+", stdout); //redirige dans un fichier  


Pas plutôt &mot[i+1] ou simplement mot+i+1?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed