zigoonette

[c]utilisation de la fonction glob()

il y a 19 ans
Auteur Message
Photo de zigoonette
zigoonette (clôturé) il y a 19 ans

Bonjour,

Je suis en train de coder un C shell sou unix, et je veux gerer le globing, notamment l'etoile.
Seuleument j'ai un leger probleme, je poste le code :
Code:

int test_joker(t_task t)
{
int i;
int j;
char **argv;
glob_t g;

if (!check_star(t))
return (0);
for (i = 1, j = 0; t->_argv[i]; i++, j++)
{
if (strchr(t->_argv[i], '*'))
{
if (j)
{
if ((glob(t->_argv[i], GLOB_APPEND, NULL, &g)) == GLOB_NOMATCH)
{
fprintf(stderr, "%s : No Match\n", t->cmd);
return (-1);
}
}
else
if ((glob(t->_argv[i], 0, NULL, &g)) == GLOB_NOMATCH)
{
fprintf(stderr, "%s : No Match\n", t->cmd);
return (-1);
}
}
}
argv = xmalloc((g.gl_matchc + 1)* sizeof(char));
for (i = 0; g.gl_pathv[i]; i++)
{
argv[i] = strdup(g.gl_pathv[i]);
}
argv[i] = NULL;
globfree(&g);
for (i = 0; argv[i]; i++)
printf("pathv[%d] = %s\n", i, argv[i]);
return (-1);
}


L'affichage c'est juste pour tester, ce qui se passe c'est que ca segault, mais voila ca ne segfault que quand j'appelle globfree, j'avoue que la je viens un peu a court d'idee donc si quelqun voit une faute, ou est au courant d'un bug sur la fonction glob, ben merci de poster Smile

@+++

Photo de olivier44
olivier44 il y a 19 ans

Tu penses vraiment que c'est le meilleur forum pour ca ? :o

Photo de dragon_noir_erkaniann
dragon_noir_erkaniann il y a 18 ans

C'est quôôaaa un globing ? ungobling ? un gobelin ?

(ah c'est pas ça ? ^^;)

Plus sérieusement ça sert à quoi ?

Photo de chupa-chupi8
chupa-chupi8 (clôturé) il y a 8 ans

else
if ((glob(t->_argv[i], 0, NULL, &g)) == GLOB_NOMATCH)


+3


Participants

Photo de olivier44 Photo de dragon_noir_erkaniann