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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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