Andrzej Orkan Napisano Listopad 29, 2006 Zgłoszenie Share Napisano Listopad 29, 2006 Mam pytanie, dlaczego w programie w C linijka #include <stdlib.h> ... printf("%s\n%s\n",getenv("MAIL"),getenv("MAILCHECK")); daje efekt $ ./program /var/spool/mail/orkan (null) $ skoro jak byk stoi po wydaniu komendy set $ set ... MACHTYPE=i686-redhat-linux-gnu MAIL=/var/spool/mail/orkan MAILCHECK=60 OPTERR=1 ... Czy nie wszystkie zmienne systemowe dostępne są przez getenv()? W jaki inny sposób mógłbym dotrzeć do zmiennej MAILCHECK? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość amdfanatyk Napisano Listopad 29, 2006 Zgłoszenie Share Napisano Listopad 29, 2006 jako trzeci argument funkcji main() masz wskazanie do tablicy char, elementami tej tablicy sa wlasnie zmienne srodowiskowe: #include <iostream> int main(int argc, char ** argv, char ** env) { int i = 0; while (env[i]) std::cout << env[i++] << "\n"; return 0; } Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Andrzej Orkan Napisano Listopad 29, 2006 Autor Zgłoszenie Share Napisano Listopad 29, 2006 jako trzeci argument funkcji main() masz wskazanie do tablicy char, elementami tej tablicy sa wlasnie zmienne srodowiskowe: Dziex, wiem o tym, tylko zastanawiam się dlaczego wśród char** env nie ma pewnych zmiennych, które wyświetlają się po wydaniu komendy "set", tudzież zastanawiam się jak do nich dotrzeć... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
KozaK Napisano Listopad 29, 2006 Zgłoszenie Share Napisano Listopad 29, 2006 Hej. moze jednak nie masz zdefiniowanej tej zmiennej. Polecenie "getenv" zwraca chyba tylko wartosci tych zmiennych, ktore mozna zobaczyc przy uzyciu komendy "env". U mnie zadzialalo to tak: kozak ~$ set | grep MAILCHECK MAILCHECK=60 kozak ~$ env | grep MAILCHECK kozak ~$ Moze w tym tkwi problem. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Andrzej Orkan Napisano Listopad 30, 2006 Autor Zgłoszenie Share Napisano Listopad 30, 2006 Dzieki, przetestowałem program w różnych środowiskach i nie zawsze MAILCHECK jest dostępny. Trzeba z tym jakoś żyć Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się