Historias
Slashboxes
Comentarios
 
Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • por nadid (9699) el Jueves, 19 Enero de 2006, 19:27h (#681097)
    ( Última bitácora: Jueves, 19 Junio de 2008, 15:49h )
    Respecto a lo primero lo he comentado en el comentario apropiado, si pongo if(a==true) es para que se pueda leer mejor, pero si me pasas una guia de estilo prometo leerla e intentar aplicarla a partir de ahora.

    Tienes razon la comprobación es estupida, pero otra vez ha sido culpa de la evolución de la version 0.0000000000000001 a la 0.0000000000000002

    Respecto a lo de las palabras reservadas es para que exista el tipo bool(que en c no existe) y ,corrigeme si me equivoco, no afecta en nada que sea en minusculas.

    tercero, el programa en principio pensaba devolver mas cosas, (aparte de 0) pero esperaba primero a ver si funcionaba lo de getenv, sino(como es el caso) debia de replantear la ejecución de los comandos y segun mi opinion no tenia sentido ponerse a devolver cosas que no fueran 0 si aun no funcionaba lo basico.

    Cuarto, Respecto a la espera activa te doy toda la razon pero otra vez te remito al paso tercero, primero queria comprobar que funcionase el getenv ,y luego pensaba pasar a optimizar el codigo.

    Respecto a la variable desactivar(y quinto), toda la razon, solo una duda: Es tan grave una variable global? que repercusiones tiene?, y una variable global que simplemente sirve para apagar el programa?, permite inyección de codigo un entero?.

    Sexta: Respecto a lo de getenv, la version justo siguiente a enviarlo(y que conste que pensaba que lo habia copiado ya aqui) ponia lo siguiente:
    char *comando=NULL; //FUERA DEL BUCLE while
    //EN EL BUCLE WHILE
      if(getenv("COMANDO")!=NULL)
                {
                if(comando!=NULL)
                    free(comando);
                comando =strdup(getenv ("COMANDO"));
                }
            else
                {
                if(comando!=NULL)
                    free(comando);
                comando=NULL;
                }

    De esa manera la variable comando es una copia de la variable de entorno.

    El programa no se cuelga, aunque tienes razon en que tampoco funciona, pero me hacia ilusion ver si se podia cambiar la variable de entorno con un simple export COMANDO="ls" por ejemplo.

    Ya por ultimo indicar que la intencion era hacer algo rapido(as is) para satisfacer una pequeña(y estupida) necesidad de programar en sistemas. tambien indicarte que algo de sistemas ya habia programado antes, y que no es mi primera vez, pero si la primera vez que me metia con berengenales de getenv, porque pensaba que lo que hacia era llamar a la variable de entorno en "el momento". Obviamente el resto de codigo era mas bien un envolvente para que no se colgara(o eso intentaba(y conseguia)).

    Por otro lado gracias por las indicaciones, he aprendido bastante, aunque como he dicho si me pasas una guia de estilo de c/c++ estaré encantado de leerla, porque eso nadie me lo ha enseñado.
    --

    La unión hace la fuerza... Rompamos su unión.
    [ Padre ]
  • Evitando globales

    (Puntos:2)
    por Ice_Glacierre (12752) el Jueves, 19 Enero de 2006, 22:41h (#681205)
    ( Última bitácora: Lunes, 29 Octubre de 2012, 18:48h )
    Yo para evitar globales en los casos en los que tenía que usar/modificar algún valor en múltiples funciones y el paso por referencia podía acabar siendo infernal empleaba un esquema del tipo:

    tipo funcion (tipo v){
      static tipo variable=NULL;
      if(v==NULL) return variable;
      else return variable=v;
    }

    (donde pongo NULL es o eso o cualqueir valor que no tenga sentido para el funcionamiento de "variable")

    Luego el contenido de variable estará disponible en todo el código mediante funcion(NULL), lo malo es el gasto de memoria por ser una variable estática, aunque por otra parte dentro de función puede meterse el código que uno quiera para comprobar si el valor asignado es correcto o cosas así.
    [ Padre ]
  • 1 respuesta por debajo de tu umbral de lectura actual.