Explication fonction main

miki -  
mype Messages postés 2449 Statut Membre -
Bonjour,a tous voila j'ai passer pas mal de temps a bosse le c bon j'ai encor de tres gros progres a faire mais bon je me debrouille pas trop mal,bref j'aimerai en savoir plus sur la fonction main et notament sur ce que signifie les parametre qui lui sont passer a savoir: int main(int argc, char *argv[])
que veut dire argc,argv et pourquoi y a til un pointeur sur argv? merci d'avance pour votre aide

8 réponses

mype Messages postés 2449 Statut Membre 437
 
argc c'est le nombre d'arguments que tu passes au programme quand tu veux l'exécuter
et argv c'est un tableau qui contient les argument passé au programme
0
petite info Messages postés 65 Statut Membre 10
 
La fonction main
Si un programme est une suite de déclarations, il doit contenir au moins une définition de fonction, la fonction principale de nom main ; l'exécution du programme commence par cette fonction. C'est elle qui appelera éventuellement les autres fonctions. Elle permet de communiquer avec le système d'exploitation. Dans sa forme la plus simple, c'est une fonction sans argument, qui retourne un int ; sa définition minimale est la suivante :

int main() {
return 0;
}
0
miki
 
oki je comprend le premiers argc mais tj pas argv pk utiliser un tableau pourriez vous m'eclairer d'avantage merci
0
miki
 
oik alors donc apres avoir relu les commentaire si je comprend bien les argument que je passe via main son copier dans un tableau en gros c'est ça n'est ce pas ?
0
mype Messages postés 2449 Statut Membre 437
 
voila c'est a peu pres ça il sont copié dans argv
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
petite info Messages postés 65 Statut Membre 10
 
la fonction main avec ce prototype :

int main(int argc, char **argv)

permet de récupérer les éléments en ligne de comment.

argc : nombre de parametres

argv : tableau contenant les parametres

Supposons qu'à l'execution, tu tapes :

./exo un deux trois quatre

Dans ce cas, argc vaudra 5

argv[0] contiendra ./exo

argv[1] contiendra un

argv[2] contiendra deux

argv[3] contiendra trois

argv[4] contiendra quatre
0
mype Messages postés 2449 Statut Membre 437
 
argv est un tableau de char * donc de chaine de caractere
par exemple tu veux lancer ton programme avec trois arguments
alors tu tapes la ligne de commande
./prog un deux trois
a ce moment argc vaut 4 et tu as
argv[0] vaut prog
argv[1] vaut un
argv[2] vaut deux
argv[3] vaut trois
tu remarques bien que chaque case du tableau argv contient un char * (prog,un,deux,etc..) voila pourquoi c'est un tableau
j'espere que tu as mieux compris la ;)
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

./prog un deux trois
a ce moment argc vaut 4 et tu as
argv[0] vaut prog


en fait argv[0] vaut ./prog
0
mype Messages postés 2449 Statut Membre 437 > lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité
 
oui merci d'avoir corriger ;)
0
miki
 
d'accord je comprend mieux maintenant (dsl d'avoir tarder a repondre) mersi pour ses explication jy voit plus clair maintenant,merci a vous tous et bonne soiree
ps ayant bien comprit grace a vos explication je poste le message en resolut merci encore a vous
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

et voici l'exemple de ce que petite info t'as donné
lami20j@debian:~$ cat main.c
#include <stdio.h>

int main(int argc,char **argv){
  int i;

  for(i=0;i<argc;printf("argv[%d] : %s\n",i-1,argv[i++]))
                ;
  return 0;
}
lami20j@debian:~$ gcc main.c -o main
lami20j@debian:~$ ./main un deux trois quatre
argv[0] : ./main
argv[1] : un
argv[2] : deux
argv[3] : trois
argv[4] : quatre
0