Programowanie w języku C/C++ » FAQ

Jak wypisać wartość zmiennych środowiskowych

  • 2008-08-03 01:19
  • 3 komentarze
  • 2941 odsłon
  • Oceń ten tekst jako pierwszy
Aby wyświetlić wartość zmiennych środowiskowych trzeba w funkcji main()
dodać dodatkowe argumenty(jeżeli takowych nie ma), a nastęnie wykonać pętle która wypisze zmienne...całość wygląda tak:

main(int argc, char *argv[], char *env[])
{
 
while(*env)
{
printf("%s\n",*env++);
 
} 
  system("PAUSE");        
  return 0;
}


Dodam, że znalazłem to przeglądając zasoby sieci:D



Autor poprawki: komputer098

Chciałbym zaprezentować inną funkcję tego działania, mianowicie:
#include <vcl.h>
 
char *getenv( const char * ) ;

Przykład:
#include <vcl.h>
#include <string.h>
 
main()
{
     char *zmienna ;
     cout << "Nazwa aktualnie zalogowanego uzytkownika : "
            << getenv( "USERNAME" ).c_str() ;
     cin << zmienna ;
} ;

Podaję także wszystkie parametry tej funkcji, lecz niektóre zostały stworzone do współpracy z konkretnym systemem, inne nie działają. Nie opisuję ich, dla ciekawskich pozostawiam to do sprawdzenia samemu:

APPEND
BLASTER
COMSPEC
COPYCMD
DIRCMD
DOSSHELL
MSDOSDATA
NO_SEP
PATH
PROMPT
TEMP
TZ
CMDLINE
COMPUTERNAME
TMP
winbootdir
windir
WINPMT
ALLUSERSPROFILE
APPDATA
CD
CMDCMDLINE
CMDEXTVERSION
COMMONPROGRAMFILES
DATE
ERRORLEVEL
HOMEDRIVE
HOMEPATH
HOMESHARE
LOGONSERVER
MORE
NUMBER_OF_PROCESSORS
OS
OS2LIBPATH
PATHEXT
PROCESSOR_ARCHITECTURE
PROCESSOR_IDENTIFER
PROCESSOR_LEVEL
PROCESSOR_REVISION
PROGRAMFILES
RANDOM
SESSIONNAME
SYSTEMDRIVE
SYSTEMROOT
TIME
USERDOMAIN
USERNAME
USERPROFILE

3 komentarze

milyges 2008-08-13 22:53

  1. include <vcl.h> <- to wali Borlandem czy się mylę?

komputer098 2008-08-03 01:21

Ach, zapomniałem dodać: jak napisano poniżej, jeżeli wywołanie zmiennej się nie powiedzie, funkcja zwraca wartość NULL.

TKW 2004-09-25 12:58

Fragment stdlib.h:
char* getenv(const char* name);/*returns environmental variable, if it don't exist NULL will be returned*/

Więc można pobrać to inaczej.