va afficher
* toto si tu as appelé la commande via toto
* ./toto si tu as appelé la commande via ./toto
* /chemin/vers/toto si tu as appelé la commande via /chemin/vers/toto
si tu as fait alias ploc=/tmp/toto puis $>ploc, cela affichera /tmp/toto, car c'est le shell qui s'occupe du remplacement
si tu fais un lien symbolique ou non (ln -s /chemin/vers/toto tata )
* ./tata affichera tata et ainsi de suite
Je suppose que le programme teste le argv[0] via un strcmp, strncmp, strcasecmp ou strncasecmp, (d'où le ltrace/strace pour le repérer)
Il me semble que la technique est utilisée par busybox pour réduire la place prise par le système; elle est aussi utilisée par les utilitaires versant (base de donnée orienté objet)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: je suppose l'utilisation de argv[0]
Posté par fearan . En réponse au message histoire de fou avec une commande. Évalué à 2.
non on s'est mal compris
va afficher
* toto si tu as appelé la commande via toto
* ./toto si tu as appelé la commande via ./toto
* /chemin/vers/toto si tu as appelé la commande via /chemin/vers/toto
si tu as fait alias ploc=/tmp/toto puis $>ploc, cela affichera /tmp/toto, car c'est le shell qui s'occupe du remplacement
si tu fais un lien symbolique ou non (ln -s /chemin/vers/toto tata )
* ./tata affichera tata et ainsi de suite
Je suppose que le programme teste le argv[0] via un strcmp, strncmp, strcasecmp ou strncasecmp, (d'où le ltrace/strace pour le repérer)
Il me semble que la technique est utilisée par busybox pour réduire la place prise par le système; elle est aussi utilisée par les utilitaires versant (base de donnée orienté objet)
Il ne faut pas décorner les boeufs avant d'avoir semé le vent