Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - D4RIO

#121
Programación C/C++ / Re: Modulo en Linux
1 Abril 2011, 18:04 PM
Por un lado, lo que dicen es correcto, esto no es para que te hagan la tarea, pero por otro, lo que solicitas es documentación, así que te facilito algo, y nos posteas el código y lo que has resuelto, de manera que lo que te ayudamos se vuelva una ayuda para todos cuando pongas lo que has aprendido, y de donde.

http://casidiablo.net/desarrollar-compilar-modulo-linux/
http://es.tldp.org/Manuales-LuCAS/doc-progmodlinux/doc-progmodlinux-html/
http://rdebug.blogspot.com/2010/08/programar-modulos-para-el-kernel-en-c.html
http://www.wikilearning.com/tutorial/guia_de_programacion_de_modulos_del_nucleo_linux-llamadas_al_sistema/9762-9
http://www.ubuntu-es.org/node/49313
http://www.wikilearning.com/tutorial/guia_de_programacion_de_modulos_del_nucleo_linux-hola_mundo/9762-2

Dedica tiempo a leer, a ejercitar, y retribuye con lo que aprendiste

Saludos!
#122
Scripting / Re: Mini script para scaneo [bash]
31 Marzo 2011, 13:36 PM
básicamente, el splitteo lo podés hacer con AWK y a lo sumo con Perl. Después lo pasas por un pipe a sort.

Pero el hecho de que no hayas visto lo del fichero temporal me hace pensar que no lo revisaste bien. Analizalo y deberías poder quitar ese fichero.
#123
Scripting / Re: Mini script para scaneo [bash]
30 Marzo 2011, 17:25 PM
Valida las variables de entrada, observa:

Código (bash) [Seleccionar]
# Sorting
if [ $output == "" ]; then
output="./ip.txt"
fi

sort ./ip.txt -o $output

# Cleaning temporal files
rm ./ip.txt ./target.txt


Si no se pasa archivo de salida, se definira ouput como ip.txt, se escribirá el archivo de salida alli, y luego se borrara porque ip.txt se cuenta como temporal y output por default.

Por otro lado debes considerar que estás usando archivos temporales cuando no los necesitas.
#124
Seguramente de Stroustrup o algún fanático. C++ no puede ser mejorado porque, por empezar, propone otra forma de resolver los problemas. A demás del malnacido mangler y toda esa basura innecesaria.
#125
Al fin y al cabo, fue por describirlo como híbrido. Digamos C++ al estilo de C, lo cual como dice Linus, evitaría aunque sea por el solo hecho de mantener alejados a los programadores en C++ del proyecto. Cada cual con su maña.

Saludos
#126
También podrías decir que esto es válido:

Código (cpp) [Seleccionar]
int i=0;

if (0!=(i==0))


Lo que no significa que sea legible o simple, dejalo como estaba y recuerda que esta evaluando si ese caracter existe, o hay un cero en su lugar.
#127
Ese verso ya me lo sabía. Ok, es soportado dentro de C++, pero no forma parte de su idea.

C++ define un paradigma propio, horrible y sin sentido, casi Orientado a Objetos, con lo que puedes programar "Pensando C++" o no (lo cual sería mejor). Pero no quiero empezar flamewars. En mi opinión, trabajé con C y con C++ por años, y creo que ANSI C es la elección más sabia. A demás, creo que son bastante distintos.

Les dejo la opinión de Linus Torvalds (me incluyo, y es la opinion de la de la mayor parte de los gurús de C) AQUI.

CitarC++ es C mejorado.
Yo lo describiría como una aberración

Saludos
#128
A primera vista, el código NO es lindo, y es un híbrido entre C y C++. Pero fuera de eso, observa esta parte con algo de detenimiento y criterio:

Código (cpp) [Seleccionar]
        if(n<10){
            for(int j=0;;j++){
                if(name[j]=='.')break;
                if(name[j]=='-'){
                    sprintf(t,"%d",i);
                    name[j+1]='0';
                    name[j+2]=t[0];
                    break;
                }
            }
        }
        else {
            for(int j=0;;j++){
                if(name[j]=='.')break;
                if(name[j]=='-'){
                    sprintf(t,"%d",i);
                    name[j+1]=t[0];
                    name[j+2]=t[1];
                    break;
                }
            }
        }


Es horrible y no tiene sentido. Verificas que el valor de "n" sea menor que 10, pero en realidad deseas verificar el de "i", porque haces el sprintf(t,"%d",i) y supones que si "i" es menor a 10, debes poner un "0".

Pero aún si hubieras puesto la "i" donde va, no hay necesidad de poner por un lado:

Código (cpp) [Seleccionar]
                    sprintf(t,"%d",i);
                    name[j+1]='0';
                    name[j+2]=t[0];


y por otro:

Código (cpp) [Seleccionar]
                    sprintf(t,"%d",i);
                    name[j+1]=t[0];
                    name[j+2]=t[1];


porque al fin y al cabo, sprintf puede poner el cero a la izquierda si se lo pides amablemente, y con eso quiero decir que si usas sprintf **leas la documentación** de tal función (y nada de 'no la encontre' porque está en todo internet): LINK.

Usa el formato "%02d" y evitarás ese condicional.
#129
Agrego:

Guardar el tamaño de la lista es la forma más performante de devolverlo cuando se solicita, pero bien puedes calcularlo recorriendo la lista hasta alcanzar el último nodo (donde next == NULL)
#130
Dear SERBice:

Perdón la tardanza, vos querés aprender a hacer un boot y el inicio de un kernel monolítico, llamemosle idea A. Mis "ideas, planteos y decisiones" se resumen en que a mi no me importa tanto la parte del boot, sino el kernel en sí. Aplicar POSIX se resume en ir cumpliendo sus estándares conforme vamos haciendo cosa por cosa como se hace en un proyecto organizado. Si te copa la idea A entonces adelante, nadie te priva de ello, pero no hagas vanos intentos de decir que los proyectos anteriores fracasaron por mis ideas, eso es tonto desde el planteo.

El proyecto del Sistema quedó dormido nuevamente, no sin que yo haga todo el intento porque la gente proponga algo. El gran problema es que nadie propone nada, y cada uno planea tener su código, tocarlo, compilarlo, etc, sin tener en cuenta lo que ITIL llamaría la gestión de configuración, para lo cual sugerí GIT porque conozco sus flujos de trabajo y los uso siempre.

Si te quieres unir y hacer el boot, eres bienvenido, quiza resucitemos el proyecto. No veo porqué tanta molestia.

http://groups.google.com/group/mythos-devgroup