Numeros Aleatorios en ANSI C

necesitamos las librerias

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

/*
*getRandomInt — returns a random int value
*/
int getRandomInt()
{
int toret=0;

srand(time(NULL));//inicializamos la semilla aleatoria utilizando la hora del sistema

toret= (int) (random());
return toret;
}

Os recomiendo observar el valor de la variable RAND_MAX si queréis evitar que la secuencia sea poco aleatoria, evitar generar menos de 2/3 del valor de RAND_MAX

Librerias estaticas y Librerias dinamicas

Cunado estas compilando tus fuentes en Linux una de las opciones son el tipo de enlace que quieres realizar en tus librerías estático o dinámico ¿en que se diferencian?

  • Librerías estáticas (lib_nombrelibreria.a)

Una librería estática se “encastra” dentro de nuestro ejecutable lo que significa que podemos llevarlo a otro ordenador sin temer a que nos falten librerías.

pero si las librerías tienen un bug y aparece una versión que arregla ese fallo tienes que recompilar el código

son mas grandes al llevar las librerías encastradas

son mas rápidos en la ejecución porque las funciones están dentro del ejecutable no  tenemos que buscarlas

  • Librerías dinámicas (lib_nombre_libreria.so)

Una librería dinámica no se “encastra” dentro de nuestro ejecutable por lo que nuestro ejecutable sera mas pequeño pero

Si nos llevamos nuestro ejecutable a otra maquina las librerías tienes que ir con el

La ejecución es mas lenta a causa de tener que ir a buscar la librería fuera del ejecutable

Si existe un bug en la librería se actualiza y arreglado en todos los ejecutables que la usan , si es un cambio en una función (mas parámetros,cambio de comportamiento ..) tenemos que volver a compilar todo.

¿Como se compilan?

Estaticas

  1. Crear los ficheros objero (.o) a partir de nuestro codigo fuente (.c)

    gcc -c fuente.c -o fuente.o

  2. Crear las librerías (.a)

    ar -rv libnombre.a fuente1.o fuente2.o … fuenten.o

    librerias_estaticas
    librerias_estaticas

Dinámicas

  1. Crear los ficheros objeto

    gcc -c fuente.c -o fuente.o

  2. Crear las librerias dinamicas

    ld -o liblibreria.so objeto1.o objeto2.o … -shared

    librerias_dinamicas
    librerias_dinamicas

Cliente Wep en DD-WRT

¿Quieres poner tu router linksys en modo cliente de un puto de acceso  que emite una señal protegida con WEP?, seguro que la interfaz solo te permite insertar la clave a traves de la passphrase que no quieres cambiar o no puedes (interfaces web externas, muchas cosas configuradas….)

Pues esto es un bug de las ultimas versiones de DD-WRT si tienes un linksys con broadcom la solucion es conectarte por telnet o ssh (siempre mejor) e insertar estor comandos:

  • nvram set wl0_key1=”TU CLAVE WEP” (con las comillas)
  • nvram commit
  • reboot

sacado de

Listas simplemente enlazadas

Escribir un programa en C que define una estructura de una listas enlazada single.
Este lista enlazada debe contener un campo entero, denominada “pid”,
y también un campo de tipo array estatica denominada mem[], representando algo no especificada.
A continuación, escribe funciones que van a realizarlas siguientes operaciones fundamentales con este estructura:

  • crear un elemento que inicializa cada uno de los campos
  • insertar un nuevo elemento al principio (a la cabecera) de la lista
  • insertar un nuevo elemento al final (a la cola) de la lista
  • un iterador que es capaz de imprimir cada uno de los campos de cada elemento y también imprime cada uno de los elementos del array estática, mem[], correspondiente.
  • Eliminar un elemento de la lista a través del valor del pid

No es la solución mas elegante pero mi C se estaba oxidando demasiado

entrega_1_ASO

Punteros en C

Un puntero es una variable que apunta a una direccion de memoria

se declara así:

tipo_dato *nombrevariable

int *pid

Para obtener la dirección de memoria donde se encuentra una variable se utiliza el operador &

int unavariable;

int *punteroaint;

unavariable=1;

punteroaint=&unavariable;

printf(“La dirección de unavariables es %p\n”&unavariable);

printf(“El contenido de unavariable es %c\n”,*punteroaint);

¿Queda claro? siempre puedes dejar tus dudas en los comentarios

Avalado por la asociación española de …

Mirando los anuncios de la televisión observo que la mayoría de los productos llevan el cromo de avalado por la asociación española de lo que sea.
Hacer una asociación en España solo requiere hacer un par de actos al año y un poco papeleo en resumidas cuentas el sellito es papel mojado