Arguments de ligne de commande C d'analyse
Spécifique à Microsoft
Le code de démarrage Microsoft C utilise les règles suivantes en interprétant les arguments spécifiés dans la ligne de commande du système d'exploitation :
Les arguments sont délimités par un espace blanc, qui peut être un espace ou une tabulation.
Une chaîne placée entre guillemets doubles est interprétée comme un argument unique, indépendamment de l'espace blanc trouve.Une chaîne entre guillemets peut être incorporée dans un argument.Notez que le signe insertion (^) n'est pas reconnu comme caractère d'échappement ou séparateur.
Un guillemet double précédé d'une barre oblique inverse, \ », est interprète comme un guillemet double littéral (Liens Ignorer la navigation).
Les barres obliques inverses sont interprétées littéralement, sauf si elles précèdent immédiatement un guillemet double.
Si un nombre pair de barres obliques inverses est suivi d'un guillemet double, une barre oblique inverse (\) est placée dans le tableau d' argv pour chaque paire de barres obliques inverses (\ \), et le guillemet double (Liens Ignorer la navigation) est interprétée comme délimiteur de chaîne.
Si un nombre impair de barres obliques inverses est suivi d'un guillemet double, une barre oblique inverse (\) est placée dans le tableau d' argv pour chaque paire de barres obliques inverses (\ \) et le guillemet double est interprétée comme une séquence d'échappement par la barre oblique inverse restante, et un guillemet double de littéral (Liens Ignorer la navigation) à placer dans argv.
Cette liste affiche les règles ci-dessus en affichant le résultat interprète passé à argv pour plusieurs exemples des arguments de ligne de commande.La sortie répertorié dans la deuxième, le tiers, et le quatrième les colonnes est du programme d'ARGS.C qui suit la liste.
entrée de ligne de commande |
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 |
Exemple
Code
// Parsing_C_Commandline_args.c
// 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;
}
Commentaires
Un exemple de sortie de ce programme est le suivant :
Command-line arguments:
argv[0] C:\MSC\TEST.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
détail de FIN Microsoft