Archive for April, 2009

Be Linux

Friday, April 17th, 2009 Posted in Uncategorized | No Comments »

What does it mean to be free?

Thursday, April 9th, 2009 Posted in Uncategorized | 2 Comments »

Linux pub

Thursday, April 9th, 2009 Posted in Uncategorized | No Comments »

Code snips #2: Combinar C y Assembler (VC)

Tuesday, April 7th, 2009 Posted in Uncategorized | 1 Comment »

Aca un ejemplo de como combinar C y Assembler. El compilador que use fue Visual C++. Se trata de una implementacion "rapida" de verificacion de primalidad. #include <stdio.h> #include <stdlib.h> #include <time.h> __inline int fsqrt(__int16 numero) {    float x = (float)(numero);    float xhalf = 0.5f * x;    register int i = *(int*)&x;    i = 0x5f3759d5 - (i >> 1);    x = *(float*)&i;    x = x*(1.5f - xhalf*x*x);    return (__int8)(1/x); } __inline int esprimo(__int16 numero) {     register __int8 resultado;     register __int8 raiz = fsqrt(numero);     __asm     {         mov ax, numero         mov bl, 2         mov cx, ax         mov dl, raiz         cmp ax, 1         je noprimo         cmp ax, 2         je primo         div bl         cmp ah, 0         je noprimo         mov bl, 3         mov ax, cx     ciclo:         div bl         cmp ah, 0         je noprimo         add bl, 2         mov ax, cx         cmp bl, dl         jb ciclo         jmp primo     primo:         mov resultado, 1         jmp fin     noprimo:         mov resultado, 0     fin:     }     return resultado; } int main(){     register __int16 numero = 1;     register __int16 cont = 0;     clock_t t_ini, t_fin;     double diff;     t_ini = clock();     while(numero < 500)     {         if(esprimo(numero) == 1)         {             cont++;         }         if(numero > 2) numero+=2;         else numero++;              }     printf("Hay %d primos entre 1 y 500\n",cont);     t_fin = clock();     diff = (double)(t_fin - t_ini);     printf("%.16g ciclo(s) de reloj\n", diff);     system("pause");     return 0; } 

Code snips #1: Eliminar Archivo Definitivamente en C

Tuesday, April 7th, 2009 Posted in Uncategorized | No Comments »

Eliminar un archivo definitivamente (es decir que no pueda ser recuperado) #include <stdio.h>#include <stdlib.h>int main(){        long tamArchivo;    char * nomArchivo;    FILE * archivo;    long i;    nomArchivo = "archivo.txt"; /* Nombre (si esta en misma carpeta) o ruta del archivo */        archivo = fopen(nomArchivo,"r+"); /* Abro el archivo para lectura/escritura */    fseek(archivo,0,SEEK_END); /* Recorro el archivo hasta el final */    tamArchivo = ftell(archivo); /* Almaceno la posicion actual en el archivo */    rewind(archivo); /* Regreso al principio del archivo */    for(i=0; i<tamArchivo; i++) /* Recorro cada posicion del archivo */    {     fprintf(archivo,"%c",'0');  /* Imprimo un 0 en la posicion */    }    fclose(archivo); /* Cierro el archivo */    remove(nomArchivo); /* Elimino el archivo */    return 0;}