size_t fmt_xlong(char *dest,unsigned long source);
fmt_xlong writes an ASCII representation ('0' to '9' and 'a' to 'f', base 16) of source to dest and returns the number of bytes written.
fmt_xlong does not append \0.
If dest equals FMT_LEN (i.e. is zero), fmt_xlong returns the number of bytes it would have written.
For convenience, fmt.h defines the integer FMT_XLONG to be big enough to contain every possible fmt_xlong output plus \0.