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
#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.