Proiect sisteme de operare


Transmiterea argumentelor şi a ambianţei



Yüklə 382,05 Kb.
səhifə4/14
tarix03.01.2022
ölçüsü382,05 Kb.
#44894
1   2   3   4   5   6   7   8   9   ...   14
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.


Yüklə 382,05 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   14




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin