int main();
Si tratta di una semplice dichiarazione. Non può accettare alcun argomento da riga di comando.
int main(int argc, char* argv[]);
Questa dichiarazione viene utilizzata quando il programma deve utilizzare gli argomenti della riga di comando. Quando viene eseguito come tale:
myprogram arg1 arg2 arg3
argc
, o numero di argomenti, verrà impostato su 4 (quattro argomenti), e argv
, o vettori argomento, verrà popolato con puntatori di stringa a "myprogram", "arg1", "arg2" e "arg3". L'invocazione del programma (myprogram
) è inclusa negli argomenti!
In alternativa, è possibile utilizzare:
int main(int argc, char** argv);
Questo è anche valido.
V'è un altro parametro è possibile aggiungere:
int main (int argc, char *argv[], char *envp[])
Il parametro envp
contiene anche le variabili d'ambiente. Ogni voce segue questo formato:
VARIABLENAME=VariableValue
come questo:
SHELL=/bin/bash
L'ambiente lista variabili è terminata da null.
fonte
2018-01-14 19:33:00
Se il programma ignora gli argomenti della riga di comando, allora ciò che scrivi va bene. Se il tuo programma ha bisogno di elaborare gli argomenti della riga di comando, allora l'IDE sta facendo bene. –
Un suggerimento per gli hacker: prova a dichiarare 'int main (int argc, char * argv [], char * envp [])' e stampa l'ultimo argomento. ';)' – ulidtko
@ulidtko non è positivo che tu stia insegnando ai neofiti di introdurre la vulnerabilità nei loro programmi;) –