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:
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.
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
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 :
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)
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); }
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); }
Partager