Bağımsız Değişken Tanımları
Prototip fonksiyonundaki bağımsız değişkenlerin
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şkenleri 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 1'e eşit veya daha büyük.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]** ilk komut satırı bağımsız değişkeni vb., kadar olan argv**[argc]**, her zaman olduğu boş.Bkz: Komut satırı işleme özelleştirme komut satırı işleme gizleme hakkında bilgi.Her zaman ilk komut satırı bağımsız değişkeni olan argv**[1]** ve son argv**[argc– 1]**.
[!NOT]
Kuralı olarak, argv[0] ile program çağrılan bir komuttur. Ancak, bir işlem kullanarak oluşturabilir mümkündür CreateProcess ve birinci ve ikinci değişken kullanırsanız (lpApplicationName ve lpCommandLine), argv[0] yürütülebilir adı; olmayabilir kullanmak GetModuleFileName yürütülebilir dosya adı ve tam yolu alınamıyor.
Microsoft'a Özgü
- envp
envp Birçok UNIX sistemlerinde yaygın bir uzantısı olan bir dizi Microsoft C++'da kullanılır.Kullanıcının ortamını içinde değişkenleri temsil eden bir dize dizisi olur.Bu dizi tarafından sonlandırılmış bir boş girdi.Bir dizi için işaretçiler olarak bildirilebilir char (char * envp []) veya işaretçiler için bir işaretçi olarak char (char ** envp**).Programınız kullanıyorsa, 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.Ortamı bir çağrı yoluyla daha sonra değiştirirseniz, putenv veya _wputenv, geçerli ortamı (tarafından döndürülen gibi getenv/_wgetenv** ve _environ/ _wenviron değişken) değişiklik, ancak envp tarafından işaret blok değişmez.Bkz: Komut satırı işleme özelleştirme ortam işleme gizleme hakkında bilgi.Bu bağımsız değişken, ANSI C, ancak içinde değil C++ uyumlu olur.
Örnek
Aşağıdaki örnek, nasıl kullanılacağını gösterir argc, argv, ve envp bağımsız 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";
}
}