Ir ao conteúdo

Posts recomendados

Postado

Prezados, preciso fazer um buffer circular em sistemas de arquivo (usando os comandos fopen,fwrite, etc) cujas mensagens gravadas em determinado arquivo possuem uma sintaxe de "[...]"

sendo '[' o Start Of Frame e ']' o End Of Frame, como na imagem abaixo... Hoje estou tentando prosseguir na estratégia da seguinte forma:

 

1. ao chegar novas mensagens e considerando o arquivo de log já cheio (no meu caso, 30kB):

2. copio as mensagens do OldBuffer para um NewBuffer retirando a mensagem mais antiga;

3. A mensagem que acaba de chegar eu escrevo no final deste NewBuffer;

4. Sempre no próximo looping, quando se chega novas mensagens então, faço esta sequencia.

 

Sugestões?

 

image.png.b64319b6c7611dbf99e3a7cfd5a2f8e3.png

 

  • Obrigado 1
Postado

Não consegui entender.

 

O que seria circular nesse caso? 

 

Se é um conjunto de arquivos então pode ter uma geração ou algo como o timestamp da ultima mensagem copiado como parte do nome do arquivo.

 

Se cada arquivo tem o limite de 30kb então use um registro desse tamanho na memória e vá montando. É o que se faz na prática se o limite é em tamanho e não em linhas.

 

No início o programa abre o último log para saber se está cheio. Se não está carrega o conteúdo e começa a gravar as novas mensagens enquanto couber.

 

No momento em que chega uma mensagem: se ela não couber (considerado o limite) é preciso ter algum indicador de final para marcar o log como preenchido antes de gravar porque vai ter algo menos que os 30kb e não teria como diferenciar algo de um arquivo corrompido porque o programa cancelou por exemplo

 

No final grava o arquivo no disco com o nome correto.

 

Mas isso não é circular. 🤔 A menos que o total seja mesmo de 60kb em dois arquivos e vá alternar a gravação entre eles

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!