Il semble que l'implémentation de LynxOS de strtod
ne gère pas tous les mêmes cas que celui de Linux, ou d'ailleurs Solaris. Le problème que j'ai, c'est que j'essaye d'analyser un texte qui peut contenir des nombres décimaux ou hexadécimaux.LynxOS strtod pas le même que Linux
sur Linux J'appelle
a = strtod(pStr, (char **)NULL);
et je reçois les valeurs attendues dans a
pour les chaînes d'entrée telles que 1.234567
et 0x40
.
Sur LynxOS, les nombres décimaux analysent correctement, mais l'hex analyse simplement 0 en raison de l'arrêt lorsqu'il atteint le 'x'. En regardant les pages man, il semble que strtod LynxOS ne supporte que les chaînes décimales dans l'entrée.
Est-ce que quelqu'un ici sait d'une alternative qui fonctionnera sur les deux Lynx et Linux?
Bienvenue sur la terre d'Unix. Si vous écrivez à (l'une des) norme (s) POSIX, vous obtiendrez plus de portabilité. Mais cela peut vouloir dire ignorer certaines extensions * très * utiles. – dmckee
@dmckee: Cela n'a rien à voir avec UNIX. Cela a à voir avec OP invoquant UB en appelant une fonction avec la mauvaise signature. Le comportement souhaité n'est même pas spécifique à POSIX; c'est exigé par ANSI/ISO C. –
@R .. N'a même pas regardé cela. Juste répondu à la réclamation des dépendances du système. – dmckee