Ich habe einige c (++) Code, der sprintf verwendet, um eine Uint_64 in eine Zeichenfolge zu konvertieren. Dies muss sowohl auf Linux als auch auf Solaris portierbar sein.printf + uint_64 auf Solaris 9?
Unter Linux verwenden wir% ju, aber unter Solaris scheint es keine Entsprechung zu geben. Der nächste, den ich finden kann, ist% lu, aber dies erzeugt eine falsche Ausgabe. Ein Beispielcode:
#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
}
Unter Linux ist die Ausgabe wie erwartet; auf Solaris 9 (nicht fragen), es ist "28"
Was kann ich verwenden?
Awesome! Das hat perfekt funktioniert. Vielen Dank! –