argv et le caractere ! (point d'exclamation)
Bonjour tout le monde.
Je viens de tomber sur un truc vraiment bizarre avec le compilateur C
natif de Ubuntu 12.04
Soit le programme trivial suivant
#include<stdio.h>
Code:
1 2 3 4 5 6 7
| main(argc,argv)
int argc; char *argv[];
{
printf(" \n argv0 %s \n",argv[0]);
printf(" \n argv1 %s \n",argv[1]);
} |
Que je le compile avec la commande cc ou gcc,
a l'exécution, voila ce que je récuperé avec un argument qui contient
un ! (point d'exclamation)
=> renvoie le truc suivant
Code:
1 2 3
| ./a.out aapropos strstr
argv0 ./a.out
argv1 aapropos |
alors que par exemple
=> renvoie ce a quoi on s'attend a savoir
Code:
1 2 3
| ./a.out toto
argv0 ./a.out
argv1 toto |
D'une façon générale s'il y a un point virgule
dans la chaine de caractères argument fournie,
le programme débloque complètement.
Quel qu'un a-t-il une idée pour expliquer ce mystère ?
merci d'avance
avec simple cote '.....' ca marche
euhh ...
Je me sens un peu morveux
J'etais pourtant certain d'avoir fait aussi cet essai.
Bref ...
Ca marche
merci pour vos reactions.