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

Kategoria: C » FAQ

3 komentarze

Avatar: milyges
Napisany 2008-08-13 22:53 przez milyges

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

Avatar: komputer098
Napisany 2008-08-03 01:21 przez komputer098

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

Brak avatara
Napisany 2004-09-25 12:58 przez TKW

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.

4programmers.net