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";
    }
}

Ayrıca bkz.

Başvuru

main: Program Başlatma