le contexte :
j'écris un programme qui permette d'envoyer/recevoir des données par port parallèle (pour une liaison fibre optique).
Pour l'émission, le programme se contente de dévider un fichier "tampon" en lisant n octets pour les envoyer ; ce sont des programmes fils qui écrivent sur ce fichiers par paquets de n également, avec un système de tickets.
le principe est le même en réception, le premier des n octets du packet permettant de savoir à qui il est destiné.

le problème :
je voudrais que chaque paquet de n octets lus soit effacé (si possible après confirmation de sa bonne réception), afin d'éviter qu'il ne grandisse démesurément et limiter le recours au lseek.
Est-ce possible sans avoir à recopier byte par byte le fichier dans un fichierbis en excluant ceux déjà lus, et à renommer fichierbis pour retrouver le même nom pour un accès futur?

En gros, faire comme si on avait une liste qu'on remplissait d'un côté (fin du fichier) et vidait de l'autre (début)