2012-01-31 11 views
5
if (!wheel) { wheel = new Wheel(); } // or some such 

Mis gafas de google no funcionan demasiado bien en la actualidad. Pensé que este debe haber sido codificado miles de veces y estaba buscando un código FOSS, pero no pude encontrar ninguno.¿Soluciones de código abierto para crear un archivo de registro cíclico?

Antes de reinventar el dispositivo esférico que rodea el eje, ¿alguien puede indicarme una URL?

Estoy codificando en C para un sistema integrado (Atmel UC3), pero eso no debería hacer ninguna diferencia, solo explique por qué necesito un archivo de registro cíclico (debido al almacenamiento limitado).

Quiero registrar eventos en un archivo en una tarjeta SD y cuando alcanza un cierto tamaño, quiero comenzar a escribir nuevamente al inicio. ¿Alguna URL para eso? (El tamaño de entrada fijo está bien; de lo contrario, puede ponerse desagradable en el envolvente).

¡Gracias a 1,000,000 por adelantado!

+3

Es probable que realmente desee un dispositivo circular que rodee el eje (así como un archivo de registro circular), ¡no uno esférico! :) –

Respuesta

5

Sourceforge tiene un proyecto llamado Cyclic Logs que puede ser lo que necesita.

Si no, no es lo más difícil de implementar. Simplemente trátelo como un espacio de memoria cíclica normal. Pero en lugar de tener que ser residente en memoria, debe residir en el disco.

(mantener un puntero a la cabeza del tronco y el final del registro (incremento, según sea necesario))

tienda aquellos como cabeceras en el registro o como otro archivo plano.

+0

+1 y la respuesta. Y un resonante D'oh !! de mi parte. Ya estaba en SF pero estúpidamente busqué "Cíclico", no "cíclico". Gracias a 1,000,000 – Mawg

+1

Sí, espacio de memoria cíclica. Para uno de mis proyectos, utilizo una memoria de archivo de 1 GB mapeada en el disco para el registro. Utiliza un C++ 'streambuf' personalizado. Una simple operación binaria 'y' hace que el puntero se ajuste. Muy fácil. –

+0

Gracias (más uno) – Mawg

Cuestiones relacionadas