Bonjour

J'essai de renvoyer une liste de fichier au shell apres avoir selectioner ces fichiers grace a un programme qui s'appel my_select (projet pour mon ecole a rendre demain)

Je gere la pluspart de ce qui m'est demander mais il me manque un truc important que je n'arrive pas a resoudre.

my_select doit etre capable de renvoyer une liste (de fichier dans cette exemple) au shell .
Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
  $> set reponse = `my_select choix1 choix2 choix3 choix4`
 
        $> more `my_select *.c`
 
        $> rm `my_select ~/*`   NB: N'utilisez cette commande QUE si 
                                   vous etes sur que votre my_select
                                   fonctionne. Nous degageons  toute
                                   responsabilite  en  cas de bug de
                                   votre my_select...
 
        $> ls `my_select /u/ept1/*` > liste
Mais je me heure toujours au meme probleme si je met comme descripteur STDIN j'ai access a l'interface du programme mais il ne renvoi pas les donne mais si je met STDOUT l'interface ne se lance pas et il est impossible de choisir ses fichiers.

Si quelau'un pouvais m'aider a trouver ce que j;ai rater ca serais cool parceque je ne comprend pas (et ca m'enerve carement), voila la partie du code qui est charger de renvoyer les nom de fichiers :
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
 
void	youhavselec(t_cstr act, t_chaine *current)
{
  int	first;
 
  first = 0;
  tputs(act.clstr, 1, my_ichar);
  tputs(tgoto(act.cmstr, 0, 0), 1, my_ichar);
  tputs(act.vestr, 1, my_ichar);
  while (current != 0)
    {
      if (current->select)
	{
	  if (first)
	    my_putchar(' ');
	  my_putstr(current->data);
	  first = 1;
	}
      current = current->next;
    }
  exit(0);
}
Merci a tous ceux qui voudraient bien m'aider (je ne demande forcement une reponse precise, je peux me contenter d'un indice qui pourrait m;aider)

Pendant que j'y suis voici les fonctions my_putchar et my_putstr
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
void	my_putstr(char *str)
{
  int	fd;
 
  fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
  while (*str++ != '\0')
    write(fd, str - 1, 1);
}
 
void	my_putchar(char c)
{
  int	fd;
 
  fd = fcntl(STDIN_FILENO, F_DUPFD, 0);
  write(fd, &c, 1);
}