xref: /memcached-1.4.29/util.h (revision 9791b779)
1420aa2d9SBrad Fitzpatrick /*
222238587SBrad Fitzpatrick  * Wrappers around strtoull/strtoll that are safer and easier to
322238587SBrad Fitzpatrick  * use.  For tests and assumptions, see internal_tests.c.
422238587SBrad Fitzpatrick  *
5420aa2d9SBrad Fitzpatrick  * str   a NULL-terminated base decimal 10 unsigned integer
6420aa2d9SBrad Fitzpatrick  * out   out parameter, if conversion succeeded
7420aa2d9SBrad Fitzpatrick  *
8420aa2d9SBrad Fitzpatrick  * returns true if conversion succeeded.
9420aa2d9SBrad Fitzpatrick  */
10a977b556SDustin Sallings bool safe_strtoull(const char *str, uint64_t *out);
11a977b556SDustin Sallings bool safe_strtoll(const char *str, int64_t *out);
1263ba0e14SDustin Sallings bool safe_strtoul(const char *str, uint32_t *out);
1363ba0e14SDustin Sallings bool safe_strtol(const char *str, int32_t *out);
14891082f3SDustin Sallings 
15*9791b779STrond Norbye #ifndef HAVE_HTONLL
16*9791b779STrond Norbye extern uint64_t htonll(uint64_t);
17*9791b779STrond Norbye extern uint64_t ntohll(uint64_t);
18*9791b779STrond Norbye #endif
19*9791b779STrond Norbye 
20891082f3SDustin Sallings #ifdef __GCC
21891082f3SDustin Sallings # define __gcc_attribute__ __attribute__
22891082f3SDustin Sallings #else
23891082f3SDustin Sallings # define __gcc_attribute__(x)
24891082f3SDustin Sallings #endif
25891082f3SDustin Sallings 
26891082f3SDustin Sallings /**
27891082f3SDustin Sallings  * Vararg variant of perror that makes for more useful error messages
28891082f3SDustin Sallings  * when reporting with parameters.
29891082f3SDustin Sallings  *
30891082f3SDustin Sallings  * @param fmt a printf format
31891082f3SDustin Sallings  */
32891082f3SDustin Sallings void vperror(const char *fmt, ...)
33891082f3SDustin Sallings     __gcc_attribute__ ((format (printf, 1, 2)));
34