Donc je fais une conversion d'une chaîne de caractères en unsigned long en utilisant strtoul sur une machine little endian et big endian. La machine little endian renvoie la valeur correcte, tandis que la machine big endian ne le fait pas. Cette fonction n'est-elle vraiment pas compatible avec les machines big endian? Si c'est le cas, existe-t-il une solution de contournement?
Code:
printf ("%s\n",cLongs);
theLongs[i] = strtoul(cLongs, NULL, 10);
cout << "valeur unsigned long retournée à partir de la chaîne de caractères: " << theLongs[i] << endl;
Résultat en little endian:
1099188638048931
valeur unsigned long retournée à partir de la chaîne de caractères: 1099188638048931
Résultat en big endian:
1099188638048931
valeur unsigned long retournée à partir de la chaîne de caractères: 4294967295
P.S. Il semble que le même nombre soit toujours retourné pour l'exemple en big endian.