yop,
Quand on fait un programme en ligne de commande, et qu'on le veut portable (principalement nux et win, quoi), comment on fait pour gérer les wildcards ?
En fait, l'expansion de nux me convient très bien.
Par contre, pour Windows, on se tape tout le travail à la main, comment font les programmes ? Il y a une lib pour ça ?
Zeph Le 30/09/2015 à 18:59 Tu veux vraiment gérer l'expansion dans ton programme, quand ça n'est pas fourni par le shell ? Certes c'est un peu la solution de facilité, mais * & co sont des fonctionnalités proposées par le shell, et perso je ne m'attends pas à les avoir quand je suis sous Windows (ou alors si c'est ça que je veux, j'utilise un shell sous Windows par exemple Cygwin ou bien un portage natif).
En fait ça me semble même presque dangereux que le programme prenne la décision, parce qu'il tourne sous Windows, de faire une expansion. Si j'exécute le programme via Cygwin et que je fais ./programme '*' alors c'est que je veux lui passer en argument le caractère *, et je ne veux surtout pas qu'il tente de le transformer en pensant que c'est la bonne chose à faire.

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Ça dépend du genre de programme, je dirais.
Si c'est un programme pour lequel il est habituel de traiter plusieurs fichiers d'un coup (exemple : un utilitaire de conversion de format), pour moi c'est souhaitable de gérer les wildcards ; et en tant qu'utilisateur Windows, j'irais pas installer Cygwin juste pour ça.
Quant à ton exemple de '*', vu que sous Windows les caractères de wildcard ne sont pas valides dans les noms de fichiers, ça me semble normal qu'ils soient toujours interprétés comme des wildcards (ou rejetés si le programme ne gère pas l'expansion). En fait ça ne pose problème que si le programme accepte indifféremment des noms de fichiers et autre chose comme argument.

—
Zeroblog —
« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » —
Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » —
GT TurboMais CentOS n'est pas un crippleware de ce style.