Aracılığıyla paylaş


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

Ayrıca bkz.

Başvuru

Ana: Program başlatma