Quello ke hai fatto tu mi sembrava giusto, forse hai passato un argomento e quindi argv[2] era vuoto...
argc è un intero che rappresenta il numero dei parametri
argv[] è un array che contiene delle stringhe, quindi è un array di puntatori a char
Ogni argv[X] lo puoi trattare come una stringa quindi puoi usare atoi, atof, ecc...
Nel codice che ti posto è mostrato anche come si acquisiscono le variabili di ambiente (non si sa mai ke possano servire...)
#include <stdio.h>
int main(int argc, char *argv[], char *envp[]) {
int i, j;
printf("---------> ARGOMENTI PASSATI <---------\n\n");
printf("argc: %d\n", i);
for (i = 0; i < argc; i++)
printf("argv[%d]: %s\n", i, argv[i]);
printf("\n\n---------> VARIABILI DI AMBIENTE <---------\n\n");
/* Controlla e stampa le variabili di ambiente fin che non si arriva alla fine del
vettore di puntatori. Infatti nel costrutto for la condizione di avanzamento è
envp[j] = 'Quello ke hai fatto tu mi sembrava giusto, forse hai passato un argomento e quindi argv[2] era vuoto...
argc è un intero che rappresenta il numero dei parametri
argv[] è un array che contiene delle stringhe, quindi è un array di puntatori a char
Ogni argv[X] lo puoi trattare come una stringa quindi puoi usare atoi, atof, ecc...
Nel codice che ti posto è mostrato anche come si acquisiscono le variabili di ambiente (non si sa mai ke possano servire...)
#include <stdio.h>
int main(int argc, char *argv[], char *envp[]) {
int i, j;
printf("---------> ARGOMENTI PASSATI <---------\n\n");
printf("argc: %d\n", i);
for (i = 0; i < argc; i++)
printf("argv[%d]: %s\n", i, argv[i]);
printf("\n\n---------> VARIABILI DI AMBIENTE <---------\n\n");
/* Controlla e stampa le variabili di ambiente fin che non si arriva alla fine del
vettore di puntatori. Infatti nel costrutto for la condizione di avanzamento è
envp[j] = '{parsed_message}', ovvero se l'elemento attuale è un NULL esci dal ciclo.*/
for (j = 0; envp[j] != '{parsed_message}'; j++) {
printf("%s\n", envp[j]);
}
return 0;
}
ESEMPIO:
# ./es foo bar blablabla
---------> ARGOMENTI PASSATI <---------
argc: 4199408
argv[0]: ./es
argv[1]: foo
argv[2]: bar
argv[3]: blablabla', ovvero se l'elemento attuale è un NULL esci dal ciclo.*/
for (j = 0; envp[j] != 'Quello ke hai fatto tu mi sembrava giusto, forse hai passato un argomento e quindi argv[2] era vuoto...
argc è un intero che rappresenta il numero dei parametri
argv[] è un array che contiene delle stringhe, quindi è un array di puntatori a char
Ogni argv[X] lo puoi trattare come una stringa quindi puoi usare atoi, atof, ecc...
Nel codice che ti posto è mostrato anche come si acquisiscono le variabili di ambiente (non si sa mai ke possano servire...)
#include <stdio.h>
int main(int argc, char *argv[], char *envp[]) {
int i, j;
printf("---------> ARGOMENTI PASSATI <---------\n\n");
printf("argc: %d\n", i);
for (i = 0; i < argc; i++)
printf("argv[%d]: %s\n", i, argv[i]);
printf("\n\n---------> VARIABILI DI AMBIENTE <---------\n\n");
/* Controlla e stampa le variabili di ambiente fin che non si arriva alla fine del
vettore di puntatori. Infatti nel costrutto for la condizione di avanzamento è
envp[j] = '{parsed_message}', ovvero se l'elemento attuale è un NULL esci dal ciclo.*/
for (j = 0; envp[j] != '{parsed_message}'; j++) {
printf("%s\n", envp[j]);
}
return 0;
}
ESEMPIO:
# ./es foo bar blablabla
---------> ARGOMENTI PASSATI <---------
argc: 4199408
argv[0]: ./es
argv[1]: foo
argv[2]: bar
argv[3]: blablabla'; j++) {
printf("%s\n", envp[j]);
}
return 0;
}
ESEMPIO:
# ./es foo bar blablabla
---------> ARGOMENTI PASSATI <---------
argc: 4199408
argv[0]: ./es
argv[1]: foo
argv[2]: bar
argv[3]: blablabla