int main(int argc, char *argv[]){ int opt= 0; /* 0 = false 1 = true */ int on = 0; int help = 0; int cantidadDeMensajes; char *numero; //struct para las opciones que existen static struct option long_options[] = { {"on", required_argument, 0, 'o' }, {"help", no_argument, 0, 'h' }, {0, 0, 0, 0 } }; int long_index =0; //captura de las posibles respuestas while ((opt = getopt_long_only(argc, argv,"", long_options, &long_index )) != -1) { switch (opt) { case 'o' : on = 1; numero = optarg; cantidadDeMensajes = atoi(numero); break; case 'h' : help = 1; break; default: instrucciones(); exit(EXIT_FAILURE); break; } } printf("on : %d\n",opt); if (on == 1) { if(cantidadDeMensajes==0) printf("no se puede inicializar con 0 mensajes, por favor elija otra cantidad\n"); else printf("Se desea enviar: %i mensajes\n", cantidadDeMensajes); iniciar(cantidadDeMensajes); } if (help == 1){ instrucciones(); exit(EXIT_FAILURE); } return 0; }
void ejecutarComando(char *parametroExtra, int accion) //Ejecuta lo retornado por "reconocerComando" { int pid; char** parametros = string_split(parametroExtra," "); switch (accion) { case 1: retardoDeConsola(parametros[1]); break; case 2: pid = atoi(parametros[1]); if (pid == 0){ mostrarTodoDeConsola(); } else{ mostrarUnoDeConsola(pid); } break; case 3: flushDeConsola(parametros[1]); break; case 4: instrucciones(); break; default: log_trace(logger1, "La accion no es contemplada"); log_trace(logger, "La accion no es contemplada"); break; } free(parametroExtra); return; }
void accion(){ instrucciones(); char* instruccion = NULL; unsigned int len = 20; unsigned decision; while(1){ getline(&instruccion,&len,stdin); decision = reconocerComando(instruccion); ejecutarComando(instruccion,decision); instruccion = NULL; } }
int main(int argc, char *argv[]) { int opt= 0; int correcto=0; int help = 0; int p,t; double a,b,c,d,s; char *f; /*entradas; • -p: depth, o n´umero m´aximo de iteraciones • -a: limite inferior del componente real del plano complejo • -b: l´ımite inferior componente imaginario • -c: l´ımite superior componente real • -d: l´ımite superior componente imaginario • -s: m • -f: archivo de salida */ while((opt = getopt(argc, argv, "p:a:b:c:d:s:f:t:")) != -1) { switch (opt) { case 'p' : p=atoi(optarg); correcto++; printf("p was %d\n", p); break; case 'a' : a=atof(optarg); correcto++; printf("a was %f\n", a); break; case 'b' : b=atof(optarg); correcto++; printf("b was %f\n", b); break; case 'c' : c=atof(optarg); correcto++; printf("c was %f\n", c); break; case 'd' : d=atof(optarg); correcto++; printf("d was %f\n", d); break; case 's' : s=atof(optarg); correcto++; printf("s was %f\n", s); break; case 'f' : f=optarg; correcto++; printf("f was %s\n", f); break; case 't' : t=atoi(optarg); correcto++; printf("t was %d\n", t); break; default: instrucciones(); exit(EXIT_FAILURE); break; } } if(correcto==8) { printf("estan todos los datos\n"); initMandelbrot(p,a,b,c,d,s,f,t); //int* t = calcularMatriz(a,b,c,d,s); //printf("accediendo a t[0]:%d\n",t[0] ); } else { printf("Faltan datos que entregar\n"); printf("Recuerda que la forma correcta es, siguiendo este ejemplo:\n"); printf("./mandelbrotp -p 500 -a -1 -b -1 -c 1 -d 1 -s 0.001 -f salida.raw\n"); } return 0; }