Bağımsız değişken tanımları
Prototip değişkenlerinde
int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
int wmain( int argc[ , wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] );
uygun komut satırı bağımsız değişkenlerini ayrıştırma izin verir ve isteğe bağlı olarak ortam değişkenlerini erişebilirsiniz.Bağımsız değişken tanımları aşağıdaki gibidir:
argc
İçinde izleyen bağımsız değişkenlerin sayısı içeren bir tamsayı argv.argc Parametresi, her zaman büyük veya 1'e eşit.argv
Program kullanıcı tarafından girilen komut satırı bağımsız değişkenleri gösteren boş sonlandırılmış bir dize dizisi.Kuralı olarak, argv**[0]** ile program çağrıldığında, bu komut argv**[1]** kadar ilk komut satırı bağımsız değişkeni ve benzeri olan argvargc**[]**, her zaman olduğu null.Bkz: Komut satırı işleme özelleştirme komut satırı işleme engelleme hakkında bilgi için.Her zaman ilk komut satırı bağımsız değişkeni olan argv**[1]** ve en son argvargc – 1**[]**.
[!NOT]
Kuralı olarak, argv[0] ile program çağrılan komutudur.Ancak, bir işlem kullanarak spawn çalınıp CreateProcess ve birinci ve ikinci bağımsız değişken kullanmazsanız (lpApplicationName ve lpCommandLine), argv[0] çalıştırılabilir adı; olmayabilir kullanmak GetModuleFileName yürütülebilir dosya adı ve tam yolu alınamıyor.
Microsoft özel
- envp
envp Birçok UNIX sisteminde ortak bir uzantısı olan bir dizi Microsoft C++'da kullanılır.Kullanıcı ortamı içinde değişkenleri temsil eden dizeleri bir dizidir.Bu dizi tarafından sonlandırılmış bir null girdi.İşaretçiler dizisi olarak bildirilebilir char (char * envp []) veya işaretçiler bir işaretçi olarak char (char ** envp**).Programınızın kullandığı, wmain yerine ana, kullanın wchar_t veri türü yerine char.Ortam bloğu geçirilen ana ve wmain "dondurulmuş" geçerli ortamı kopyasıdır.Sonradan yapılan bir çağrı yoluyla ortam değiştirirseniz, putenv veya _wputenv, geçerli ortamı (tarafından iade olarak getenv/_wgetenv** ve _environ/ _wenviron değişken) değişiklik ancak envp göre sıralanmasını engelleme değişmez.Bkz: Komut satırı işleme özelleştirme ortam işleme engelleme hakkında bilgi için.Bu bağımsız değişken, ANSI c ancak içinde değil C++ uyumlu olur.
Örnek
Aşağıdaki örnek, nasıl kullanacağınızı gösterir argc, argv, ve envp bağımsız değişkenleri ana:
// argument_definitions.cpp
// compile with: /EHsc
#include <iostream>
#include <string.h>
using namespace std;
int main( int argc, char *argv[], char *envp[] ) {
int iNumberLines = 0; // Default is no line numbers.
// If /n is passed to the .exe, display numbered listing
// of environment variables.
if ( (argc == 2) && _stricmp( argv[1], "/n" ) == 0 )
iNumberLines = 1;
// Walk through list of strings until a NULL is encountered.
for( int i = 0; envp[i] != NULL; ++i ) {
if( iNumberLines )
cout << i << ": " << envp[i] << "\n";
}
}