Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C sotto Linux] Argomenti argc e argv del main

    Qualcuno potrebbe spiegarmi a cosa servono i parametri argc e argv che vengono passati al main() ? Ho un sorgente scaricato da internet che mi restituisce come errore argc!=2 : di cosa si tratta?

    Ho fatto una breve ricerca sia su questo forum che su internet e non ci ho capito molto..

  2. #2

    Re: [C sotto Linux] Argomenti argc e argv del main

    Originariamente inviato da adone79
    Qualcuno potrebbe spiegarmi a cosa servono i parametri argc e argv che vengono passati al main() ? Ho un sorgente scaricato da internet che mi restituisce come errore argc!=2 : di cosa si tratta?

    Ho fatto una breve ricerca sia su questo forum che su internet e non ci ho capito molto..
    argc indica il numero(infatti è una variabile intera) di argomenti passati al programma.

    argv è un array che punta a stringhe conteneti gli argomenti passati(è un puntatore di puntatore infatti + definito per char *argv[] ).

    Per argomenti si intendono i parametri passati quando si avvia il programma:infatti questi eseguibili,una volta compilati, si richiamano digitando(per linux da shell)
    codice:
    ./nome_eseguibile parametro1 parametro2
    ecc...

    Quella condizione controlla che gli sia passato almeno un argomento(un argomento perchè argv[0] e il nome del programma e quindi argc e' sempre a 1).

    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  3. #3
    argc e argv sono rispettivamente, quanti e quali argomenti passi al programma:

    codice:
    [michele@localhost c]$ cat prg.c
    #include <stdio.h>
    
    int main (int argc, char **argv) {
            if (argc != 2)
                    fprintf (stderr, "errore argc!=2 :\n");
            else {
                    printf ("Numero argomenti: %d + 1 (programma) \n", argc - 1);
                    printf ("Nome programma: %s \n", *(argv));
                    printf ("Primo parametro: %s \n", *(argv + 1));
            }
            return (0);
    }
    [michele@localhost c]$ gcc -o prg prg.c
    [michele@localhost c]$ ./prg       
    errore argc!=2 :
    [michele@localhost c]$ ./prg verde
    Numero argomenti: 1 + 1 (programma) 
    Nome programma: ./prg 
    Primo parametro: verde
    [michele@localhost c]$
    Spero di averti chiarito l'idea.

  4. #4
    in pratica mi state dicendo che ho sbagliato a usare il programma perché non gli ho passato i parametri che mi chiedeva!

    che schiappa

  5. #5
    Originariamente inviato da adone79
    in pratica mi state dicendo che ho sbagliato a usare il programma perché non gli ho passato i parametri che mi chiedeva!

    che schiappa
    si

    no problem..
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  6. #6
    grazie ragazzi, ho appena provato a passargli un intero e funziona. :mavieni:

  7. #7
    Originariamente inviato da adone79
    grazie ragazzi, ho appena provato a passargli un intero e funziona. :mavieni:
    :gren:
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.