1.3 Transmiterea argumentelor şi a ambianţei
Funcţia main a unui program C poate prelua argumente din linia de comandă, numărul acestora este dat de argumentul argc al lui main, iar valorile argumentelor, sub forma unor şiruri de caractere, se găsesc în tabloul de pointeri argv. Ultimul element din tablou trebuie să fie un pointer nul.
Variabilele de mediu sunt făcute accesibile programului prin intermediul unei variabile globale standard, environ. Valoarea acesteia este un pointer care indică începutul unui tablou de pointeri spre şiruri de caractere. Aceste şiruri de caractere, de forma nume=valoare, reprezintă variabilele de mediu. Ultimul element din tablou trebuie să fie un pointer nul.
Următorul program, argenv.c, ilustrează modul de utilizare al celor două tablouri de pointeri: tipăreşte argumentele transmise prin linia de comandă şi variabilele de mediu momentan definite.
#include
extern char **environ;
int main(inr argc, char *argv[]) {
int i;
char **p=environ;
for (i=0;i
printf(' 'argv[%d]: %s\n' ', i , argv[i]);
while(*p!=0) {
printf(' '%s\n' ', *p);
p++;
}
}
Funcţia main se poate scrie şi cu trei argumente, unde al treilea argument joacă acelaşi rol ca şi variabila globală environ:
int main(int argc, char *argv[], char *env[]);
Accesul la variabilele de mediu este, de asemenea posibil prin intermediul a două funcţii de bibliotecă, getenv şi putenv, cu prototipurile:
#include
char *getenv(const char *name);
int putenv(const char *str);
Prima funcţie primeşte ca argument numele unei variabile de mediu şi returnează valoarea acesteia ca un pointer nul dacă variabila cu acel nume nu există. Prin putenv se poate defini o variabilă de mediu, argumentul str trebuind să fie de forma nume=valoare. Această funcţie returnează -1 în caz de eroare.
Dostları ilə paylaş: |