1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#include <stdlib.h> #include <inttypes.h> #include <errno.h> #include <limits.h> long long strtoll(const char *s, char **p, int base) { intmax_t x = strtoimax(s, p, base); if (x > LLONG_MAX) { errno = ERANGE; return LLONG_MAX; } else if (x < LLONG_MIN) { errno = ERANGE; return LLONG_MIN; } return x; }