IIC2333 / Foro-2020-2

4 stars 0 forks source link

-i -p #84

Open kmhaller opened 4 years ago

kmhaller commented 4 years ago

Hola, queríamos saber para qué sirven el -i y -p en los inputs $ ./server -i -p $ ./client -i -p y si tiene que manejarse de manera distinta argv[] y argc[]. gracias!

Taeval commented 4 years ago

Hola! "-i" y "-p" pueden ser consideradas como "flags" para identificar argumentos cuando se ejecuta el programa. "-i" para el proyecto se refiere a IP e indica que el próximo argumento es la IP a usar, mientras que "-p" se refiere a PORT e indica que el próximo argumento es el puerto por donde se va a establecer la conexión.

argc que significa ARGument Count indica la cantidad de argumentos recibidos al ejecutar el programa, siendo el primero el nombre del programa. Entonces, al ejecutar el programa argc va a ser al menos 1.

argv que significa ARGument Vector es un arreglo de punteros que apuntan hacia cada argumento entregado. Como el primer argumento es el nombre del programa, argv[0] apunta al nombre del programa, y los siguientes a cada string de los argumentos ingresados.

Entonces al hacer

$ ./server -i -p

argc = 5 <--- el nombre del programa y los 4 argumentos adicionales. Este valor coincide con el largo del arreglo argv. argv[0] = nombre del porgrama argv[1] = "-i" argv[2] = "" argv[3] = "-p" argv[4] = ""

Al final las flags "-i" y "-p" las usamos para poder identificar el orden en el que se ingresaron los argumentos. Así podemos recibir los argumentos sin importar el orden en el que fueron ingresados sin que se nos caiga el programa, por ejemplo.