Programme C
Résolu
Bonjour,
je suis très intéressé par le C
mais je suis face à ce programme
que je ne comprends pas du tout.
Pouvez vous m'expliquer ce qu'il fait svp?
Vous me seriez d'un grand secours.
merci d'avance
PS : Je connais le mécanisme des pointeurs
Pas besoin de vous embêter à me l'expliquer.
int main ( int argc, char **argv )
{
char *str;
while ( *argv ) argv++; argv++;
while ( **argv != 85 ) argv++;
str = *argv;
while (*str != 61) str++;
str++;
printf("\nHello %s...\n", str);
return 0;
}
je suis très intéressé par le C
mais je suis face à ce programme
que je ne comprends pas du tout.
Pouvez vous m'expliquer ce qu'il fait svp?
Vous me seriez d'un grand secours.
merci d'avance
PS : Je connais le mécanisme des pointeurs
Pas besoin de vous embêter à me l'expliquer.
int main ( int argc, char **argv )
{
char *str;
while ( *argv ) argv++; argv++;
while ( **argv != 85 ) argv++;
str = *argv;
while (*str != 61) str++;
str++;
printf("\nHello %s...\n", str);
return 0;
}
A voir également:
- Programme C
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
Bonjour,
Ben, les variables d'environnement sont juste après les arguments.
Le 85 sélectionne celle qui commence par 'U' (c'est "USER"), et le 61 sélectionne le signe '='. On obtient donc la valeur derrière "USER="
Manu
Ben, les variables d'environnement sont juste après les arguments.
Le 85 sélectionne celle qui commence par 'U' (c'est "USER"), et le 61 sélectionne le signe '='. On obtient donc la valeur derrière "USER="
Manu
Ouaah ca me laisse rêveuse, il est capable de chopper ton login ! Mais alors pourquoi, ça c'est un mystère :p En toute logique le programme aurait dû segfaulter mais la personne qui l'a écrit savait qu'il trouverait dans cette zone mémoire le login utilisé. Là c'est plus une question sur la manière dont linux organise ses informations en mémoire qu'une question de langage C... J'imagine que linux stocke le propriétaire du programme exécuté en mémoire et que cette manip est un moyen de le récupérer.
Bonne chance
Bonne chance