C LanguageArgumentos de línea de comando


Sintaxis

  • int main (int argc, char * argv [])

Parámetros

Parámetro Detalles
argc recuento de argumentos: se inicializa con el número de argumentos separados por espacios que se asignan al programa desde la línea de comandos, así como el nombre del programa.
argv vector argumento - inicializado a un conjunto de char -pointers (cadenas) que contiene los argumentos (y el nombre del programa) que se le dio en la línea de comandos.

Observaciones

El programa de CA que se ejecuta en un "entorno alojado" (el tipo normal, a diferencia de un "entorno independiente") debe tener una función main . Tradicionalmente se define como:

int main(int argc, char *argv[])

Tenga en cuenta que argv también puede ser, y muy a menudo es, definido como char **argv ; El comportamiento es el mismo. Además, los nombres de los parámetros se pueden cambiar porque son solo variables locales dentro de la función, pero argc y argv son convencionales y debe usar esos nombres.

Para las funciones main donde el código no usa ningún argumento, use int main(void) .

Ambos parámetros se inicializan cuando se inicia el programa:

  • argc se inicializa a la cantidad de argumentos separados por espacios que se le dan al programa desde la línea de comandos, así como al nombre del programa.
  • argv es una matriz de char -pointers (cadenas) que contienen los argumentos (y el nombre del programa) que se le dio en la línea de comandos.
  • algunos sistemas expanden los argumentos de la línea de comandos "en el shell", otros no. En Unix, si el usuario escribe myprogram *.txt el programa recibirá una lista de archivos de texto; en Windows recibirá la cadena " *.txt ".

Nota: Antes de usar argv , es posible que deba verificar el valor de argc . En teoría, argc podría ser 0 , y si argc es cero, entonces no hay argumentos y argv[0] (equivalente a argv[argc] ) es un puntero nulo. Sería un sistema inusual con un entorno alojado si se encontrara con este problema. Del mismo modo, es posible, aunque muy inusual, que no haya información sobre el nombre del programa. En ese caso, argv[0][0] == '\0' - el nombre del programa puede estar vacío.

Supongamos que iniciamos el programa así:

./some_program abba banana mamajam

Entonces argc es igual a 4 , y los argumentos de la línea de comando:

  • argv[0] apunta a "./some_program" (el nombre del programa) si el nombre del programa está disponible desde el entorno host. De lo contrario, una cadena vacía "" .
  • argv[1] apunta a "abba" ,
  • argv[2] apunta a "banana" ,
  • argv[3] apunta a "mamajam" ,
  • argv[4] contiene el valor NULL .

Vea también Qué debería devolver main() en C y C ++ para obtener citas completas del estándar.

Argumentos de línea de comando Ejemplos relacionados