Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Microsoft-specifieke
De opstartcode van Microsoft C gebruikt de volgende regels bij het interpreteren van argumenten die zijn opgegeven op de opdrachtregel van het besturingssysteem:
Argumenten worden gescheiden door spaties, ofwel spaties of tabs.
Het eerste argument (
argv[0]) wordt speciaal behandeld. Deze vertegenwoordigt de naam van het programma. Omdat het een geldige padnaam moet zijn, zijn onderdelen tussen dubbele aanhalingstekens (") toegestaan. De dubbele aanhalingstekens worden niet opgenomen in deargv[0]uitvoer. De delen tussen dubbele aanhalingstekens verhinderen de interpretatie van een spatie of tabteken als het einde van het argument. De latere regels in deze lijst zijn niet van toepassing.Een tekenreeks tussen dubbele aanhalingstekens wordt geïnterpreteerd als één argument, ongeacht of deze witruimtetekens bevat of niet. Een tekenreeks tussen aanhalingstekens kan worden ingesloten in een argument. De caret (
^) wordt niet herkend als een escape-teken of scheidingsteken. Binnen een aanhalingstekenreeks wordt een paar dubbele aanhalingstekens geïnterpreteerd als één dubbel aanhalingsteken. Als de opdrachtregel eindigt voordat een dubbele aanhalingsteken sluiten wordt gevonden, worden alle tekens die tot nu toe worden gelezen, uitgevoerd als het laatste argument.Een dubbele aanhalingsteken voorafgegaan door een backslash (
\") wordt geïnterpreteerd als een letterlijk dubbel aanhalingsteken (").Backslashes worden letterlijk geïnterpreteerd, tenzij ze direct voorafgaan aan een dubbel aanhalingsteken.
Als een even aantal backslashes wordt gevolgd door een dubbele aanhalingsteken, wordt één backslash (
\) in deargvmatrix geplaatst voor elk paar backslashes () en wordt het dubbele aanhalingsteken (\\") geïnterpreteerd als een tekenreeksscheidingsteken.Als een oneven aantal backslashes wordt gevolgd door een dubbele aanhalingsteken, wordt er één backslash (
\) in deargvmatrix geplaatst voor elk paar backslashes (\\). Het dubbele aanhalingsteken wordt geïnterpreteerd als een escape-reeks door de resterende backslash, waardoor een letterlijk dubbel aanhalingsteken (") wordt geplaatstargv.
Deze lijst illustreert de bovenstaande regels door het geïnterpreteerde resultaat weer te geven dat is doorgegeven voor argv verschillende voorbeelden van opdrachtregelargumenten. De uitvoer die wordt vermeld in de tweede, derde en vierde kolom is afkomstig van de ARGS. C-programma dat de lijst volgt.
| Opdrachtregelinvoer | argv[1] |
argv[2] |
argv[3] |
|---|---|---|---|
"a b c" d e |
a b c |
d |
e |
"ab\"c" "\\" d |
ab"c |
\ |
d |
a\\\b d"e f"g h |
a\\\b |
de fg |
h |
a\\\"b c d |
a\"b |
c |
d |
a\\\\"b c" d e |
a\\b c |
d |
e |
a"b"" c d |
ab" c d |
Voorbeeld
Code
// ARGS.C illustrates the following variables used for accessing
// command-line arguments and environment variables:
// argc argv envp
//
#include <stdio.h>
int main( int argc, // Number of strings in array argv
char *argv[], // Array of command-line argument strings
char **envp ) // Array of environment variable strings
{
int count;
// Display each command-line argument.
printf_s( "\nCommand-line arguments:\n" );
for( count = 0; count < argc; count++ )
printf_s( " argv[%d] %s\n", count, argv[count] );
// Display each environment variable.
printf_s( "\nEnvironment variables:\n" );
while( *envp != NULL )
printf_s( " %s\n", *(envp++) );
return;
}
Een voorbeeld van uitvoer van dit programma is:
Command-line arguments:
argv[0] C:\MSC\ARGS.EXE
Environment variables:
COMSPEC=C:\NT\SYSTEM32\CMD.EXE
PATH=c:\nt;c:\binb;c:\binr;c:\nt\system32;c:\word;c:\help;c:\msc;c:\;
PROMPT=[$p]
TEMP=c:\tmp
TMP=c:\tmp
EDITORS=c:\binr
WINDIR=c:\nt
Microsoft-specifieke beëindigen