Cominciamo con l’errore, se vai alla pagina Elenco errori ed inserisci il numero di errore troverai questa indicazione:
10056084 Indici FIFO non sono corretti file viene ricreato FIFOFile
L’errore stà ad indicare che gli indici del registro FIFO non sono corretti, il fatto che non siano corretti mi fà pensare che in qualche parte del programma vengano sporcati, esempio da puntatori spuntati o da array fuori dimensione. Ora partendo dall’ipotesi degli indici corrotti posso costruire una teoria su cosa succede al file “REST.bin”.
Come in tutt i file systems i dati sul disco non sono mai cancellati ma si opera a livello di FAT, ora quando un nuovo file viene creato questo và a posizionarsi sul disco in una posizione libera, ma quella posizione poteva prima essere stata occupata da un’altro file (magari txt). Il FB FIFOFile scrive i suoi dati dall’inizio del file consecutivamente (Ma per sua natura alloca comunque lo spazio che gli è stato definito). Quindi se guardi il file con un editor vedrai i dati FIFO all’inizio e poi dopo l’ultimo record salvato vedrai il precedente contenuto del disco in quella posizione (magari parti txt di un vecchio file).
La scrittura sul file FIFO è consecutiva quindi tra record FIFO corretti non può esserci il precedente contenuto del disco, ma se gli indici FIFO sono sporcati la scrittura sul disco viene frammentata ed allora anche tra i record FIFO potresti trovarti parti del precedente contenuto del disco.