Bonsoir,
Je souhaite envoyer sur le port série une structure de cette manière:
timeSend = time (NULL);
res = fwrite(&timeSend, sizeTime, 1, fd);
et le récupérer ainsi:
res = fread(&timeRecept, sizeTime, 1, fd);
sauf que j'ai lu là --> http://www.usenet-fr.net/fur/comp/lang/faq-c-2.html :
"6.6 Comment lire/écrire des structures dans des fichiers ?
Il faut utiliser les fonctions fread() et fwrite().
Attention : les fichiers obtenus ne sont pas portables."
Quelqu'un a une idée en quoi les fichiers ne seront pas portables ?
J'aimerais utiliser write plutôt que fwrite.
Est-ce une erreur sachant que je souhaite envoyer mes données sur le port série et socket réseau ?
Plus gênant, je voulais comparer deux structures avec un truc du genre:
if (memcmp (&timeSend, &timeRecept, sizeTime) !=0 )
sauf que, toujours à la même adresse, j'ai:
"6.5 Comment comparer deux structures ?
Il n'existe pas en C d'opérateur ou de fonction pour comparer deux structures.
Il faut donc le faire à la main, champs par champs.
Une comparaison bit à bit n'est pas portable, et risque de ne pas
marcher, en raison du padding (alignement sur certains octets)."
A part déstructurer les données ou de tester champ par champ, comment procédez vous pour manipuler vos structures ?
Merci.
Partager