C/C++ FAQ

Jak wypisać wartość zmiennych środowiskowych

Kaczor

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

FAQ

3 komentarzy

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

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

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.