Ahora vamos a empezar con un poco del viejo y querido C, para los que hayan usado linux seguramente vieron como la mayoria de los comandos tienen parametros, anteriormente vimos un modo rudimentrario de obtenerlos "a lo bestia" en bash (por si no recuerdan).
Bueno, como veran no es muy facil pasar muchos argumentos, y mucho menos si los pasamos en desorden !
Para solucionar este problema existe la función getopt en c. Las opciones que reconoce son ademas las standard de linux con "-" al principio.
sintaxis:
int getopt( int argc, char* argv[], const char* optstring )
"int argc" y "char* argv[]" son los parametros de main, que para los que aun no estan enterados la funcion main puede escribirse tanto como:
int main()
int main(int argc, char* arnv[])
la segunda forma toma en consideracion que se le pueden pasar lineas de parametros.
const char* opstring, es una cadena que contiene las opciones validas que se le pueden pasar a nuestro programa, por ejemplo si ponemos "ns" las opciones validas son -s -n -sn -ns cualquiera de esas combinaciones.Si ponemos "a:" significa que a recive un parametro obligatorio, si ponemos "a::" el parametro es opcional.
Pero para entender nada mejor que un ejemplo (que les puede servir de plantilla):
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]){
int opt;
char *opciones="apl::b:";
while((opt=getopt(argc,argv, opciones)) != -1){
switch(opt){
case 'a': printf("\n\nopcion A\n\n");break; case 'b': printf("\n\nopcion B con argumento %s\n\n", optarg);break; case 'l': printf("\n\nopcion B con argumento opcional %s\n\n", optarg);break;
}
}
return 0;
}
pd: a nadie le importa la ortografia, solo a los homos.
No hay comentarios:
Publicar un comentario