La función más importante de C es la función main(). Principalmente se define con un tipo de retorno int y sin parámetros.
int main() { ... }>
También podemos dar argumentos de línea de comandos en C. Los argumentos de línea de comandos son los valores dados después del nombre del programa en el shell de línea de comandos de los sistemas operativos. Los argumentos de la línea de comandos son manejados por la función main() de un programa en C.
Para pasar argumentos de línea de comandos, normalmente definimos main() con dos argumentos: el primer argumento es el número de argumentos de la línea de comando y el segundo es un lista de argumentos de la línea de comandos.
java leyendo csv
Sintaxis
int main(int argc, char *argv[]) { /* ... */ } or int main(int argc, char **argv) { /* ... */ }>
Aquí,
- argc (ARGument Count) es una variable entera que almacena la cantidad de argumentos de la línea de comandos pasados por el usuario, incluido el nombre del programa. Entonces, si pasamos un valor a un programa, el valor de argc sería 2 (uno para el argumento y otro para el nombre del programa).
- El valor de argc no debe ser negativo. argv (ARGument Vector) es una matriz de punteros de caracteres que enumeran todos los argumentos.
- Si argc es mayor que cero, los elementos de la matriz desde argv[0] hasta argv[argc-1] contendrán punteros a cadenas.
- argv[0] es el nombre del programa. Después de eso, hasta argv[argc-1], cada elemento son argumentos de línea de comandos.
Para una mejor comprensión, ejecute este código en su máquina Linux.
Ejemplo
El siguiente ejemplo ilustra la impresión de argumentos de línea de comando.
C
// C program named mainreturn.c to demonstrate the working> // of command line arguement> #include> // defining main with arguments> int> main(> int> argc,> char> * argv[])> {> > printf> (> 'You have entered %d arguments:
'> , argc);> > for> (> int> i = 0; i printf('%s
', argv[i]); } return 0; }> |
>
>
Producción
You have entered 4 arguments: ./main geeks for geeks>
para entrada de terminal
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks>
Nota: Los estándares C también permiten otros formatos dependientes de la plataforma; por ejemplo, Unix (aunque no POSIX.1) y Microsoft Visual C++ tienen un tercer argumento que proporciona el entorno del programa, al que de otro modo se puede acceder a través de getenv en stdlib.h. Consulte el programa C para imprimir variables de entorno para obtener más detalles.
Propiedades de los argumentos de la línea de comando en C
- Se pasan a la función main().
- Son parámetros/argumentos proporcionados al programa cuando se invoca.
- Se utilizan para controlar programas desde fuera en lugar de codificar esos valores dentro del código.
- argv[argc] es un puntero NULL.
- argv[0] contiene el nombre del programa.
- argv[1] apunta al primer argumento de la línea de comando y argv[argc-1] apunta al último argumento.
Nota: Pasa todos los argumentos de la línea de comando separados por un espacio, pero si el argumento en sí tiene un espacio, puede pasar dichos argumentos poniéndolos entre comillas dobles o simples.
Ejemplo
El siguiente programa demuestra el funcionamiento de los argumentos de la línea de comando.
C
// C program to illustrate> // command line arguments> #include> int> main(> int> argc,> char> * argv[])> {> > printf> (> 'Program name is: %s'> , argv[0]);> > if> (argc == 1)> > printf> (> '
No Extra Command Line Argument Passed '> > 'Other Than Program Name'> );> > if> (argc>= 2) {> > printf> (> '
Number Of Arguments Passed: %d'> , argc);> > printf> (> '
----Following Are The Command Line '> > 'Arguments Passed----'> );> > for> (> int> i = 0; i printf('
argv[%d]: %s', i, argv[i]); } return 0; }> |
>
>
Salida en diferentes escenarios:
1. Sin argumento: Cuando el código anterior se compila y ejecuta sin pasar ningún argumento, produce el siguiente resultado.
Entrada de terminal
$ ./a.out>
Producción
Program Name Is: ./a.out No Extra Command Line Argument Passed Other Than Program Name>
2. Tres argumentos: Cuando el código anterior se compila y ejecuta con tres argumentos, produce el siguiente resultado.
Entrada de terminal
$ ./a.out First Second Third>
Producción
Program Name Is: ./a.out Number Of Arguments Passed: 4 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First argv[2]: Second argv[3]: Third>
3. Argumento único: Cuando el código anterior se compila y ejecuta con un solo argumento separado por espacios pero entre comillas dobles, produce el siguiente resultado.
Entrada de terminal
$ ./a.out 'First Second Third'>
Producción
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>
4. Un solo argumento entre comillas separadas por espacios: Cuando el código anterior se compila y ejecuta con un único argumento separado por espacios pero entre comillas simples, produce el siguiente resultado.
¿Por qué cadena inmutable en Java?
Entrada de terminal
$ ./a.out 'First Second Third'>
Producción
Program Name Is: ./a.out Number Of Arguments Passed: 2 ----Following Are The Command Line Arguments Passed---- argv[0]: ./a.out argv[1]: First Second Third>