[C con Clase] Tamaño de Buffer

anonymous.mx anonymous.mx en gmail.com
Jue Jun 3 00:27:33 CEST 2010


Muchas gracias Steven por las observaciones acertadas.

No he entrado a la etapa de depuración total del codigo, pero siempre una
buena organización desde el principio es mejor.

Soy programador empirico, me gusta hacer el codigo partiendo de una idea,
compilar y probar.

Agrego los siguiente comentarios.

 _trched es tipo char con 240 posiciones (char _trched [240];), al comenzar
el codigo tuve muchos problemas para obtener un valor entero de 4 bytes o de
2 bytes, por lo que se me ocurrio hacer las 2 funciones de valores enteros
para 2 y 4 bytes. (unsigned char int2[2];   unsigned char int4[4];) (ademas
de que funcionara tanto en windows, linux y solaris)

int entero2(unsigned char* s)
{
 int ret;
 ret = s[0] * 256;
 ret = ret + s[1];
 if (ret>32767) ret = ret - 65536;
 return ret;
}
long int entero4(unsigned char* s)
{
 long int ret;
 ret = s[0] * 16777216;
 ret = ret + s[1] * 65536;
 ret = ret + s[2] * 256;
 ret = ret + s[3];
 if (ret>2147483647) ret = ret - 2147483646;
 return ret;
}


Cuando se realiza el fread la variable _trched obtiene 240 bytes del archivo
en la posicion que indica el for.

Entonces desde la posicion 17-1 hasta 17+2 se encuentra el valor entero de 4
bytes que quiero leer y comparar contra la variable SP, si la traza tiene el
valor del SP procedo a grabar la traza completa en nuevo archivo.

Por lo que me tiene intrigado estas instrucciones que me comentaste.


entero4( &_trched[17-1] )

O de su forma equivalente:

entero4( _trched + 17-1 )



Saludos desde Villahermosa, Tabasco, Mexico, America, Tierra.

José Luis
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100602/814dfd6c/attachment.html>


Más información sobre la lista de distribución Cconclase