#include "stdlib_p.h" #include long double strtold(char const * restrict ptr, char ** restrict endptr) { long double ld = 0; if(endptr) *endptr = (char *)ptr; struct __scanf_input in = { .str = ptr, .fp = NULL }; __scanf_start(&in); int err = __strto_fp(&in, NULL, NULL, &ld, INT_MAX); __scanf_end(&in); if(err != 0) errno = (err == EOF) ? EINVAL : err; if(err != EINVAL && endptr) *endptr = (char *)in.str; return ld; }