Пример #1
0
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;
	}
}
Пример #4
0
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;
}