Tengo un código c (++) que usa sprintf para convertir un uint_64 en una cadena. Esto debe ser portátil tanto para Linux como para Solaris.printf + uint_64 en Solaris 9?
En Linux utilizamos% ju, pero no parece haber ningún equivalente en Solaris. Lo más cerca que puedo encontrar es% lu, pero esto produce resultados incorrectos. Algunos código de muestra:
#include <stdio.h>
#include <sys/types.h>
#ifdef SunOS
typedef uint64_t u_int64_t;
#endif
int main(int argc, char **argv) {
u_int64_t val = 123456789123L;
#ifdef SunOS
printf("%lu\n", val);
#else
printf("%ju\n", val);
#endif
}
En Linux, la salida es la esperada; en Solaris 9 (no preguntes), es "28"
¿Qué puedo usar?
¡Impresionante! Esto funcionó perfectamente. ¡Gracias! –