Comment sérialiser des données en C

J’écris une application client-serveur en c et je dois envoyer des structures dans les deux sens.

Comment puis-je sérialiser les données de manière indépendante de la plate-forme?

Si vous devez vous préoccuper de la compatibilité entre les différentes versions du serveur et du client, j’utilise les tampons de protocole Google ou JSON (une implémentation existante ou vous écrivez la vôtre). Si les versions sont toujours synchronisées, écrivez simplement votre propre sérialisation binary, ou personnalisez même la structure en mémoire afin qu’elle soit sous une forme «sérialisée» et utilisez des fonctions d’access pour la lire et l’écrire. Cela implique essentiellement de stocker des nombres sous forme d’un nombre fixe d’octets dans un ordre endian fixe, ou d’un format vlc si vous voulez avoir l’imagination, et d’utiliser des descripteurs d’object (le plus simple étant un décalage dans un tableau) à la place de pointeurs explicites. quand un object doit faire référence à un autre.

Le fait de conserver des données sur un disque en série (par exemple via mmap ) constitue un avantage non négligeable du stockage interne des données dans un format “sérialisé” sans devoir écrire votre propre code de mise en cache complexe.