]> git.ipfire.org Git - thirdparty/util-linux.git/blame - include/strutils.h
docs: clarify KiB vs. KB in man pages
[thirdparty/util-linux.git] / include / strutils.h
CommitLineData
8abcf290
DB
1#ifndef UTIL_LINUX_STRUTILS
2#define UTIL_LINUX_STRUTILS
3
4#include <inttypes.h>
5#include <string.h>
ce877f2d 6#include <sys/types.h>
8abcf290
DB
7
8extern int strtosize(const char *str, uintmax_t *res);
a9f97001 9extern double strtod_or_err(const char *str, const char *errmesg);
8abcf290 10extern long strtol_or_err(const char *str, const char *errmesg);
94d32126 11extern long long strtoll_or_err(const char *str, const char *errmesg);
e53bc960 12extern unsigned long strtoul_or_err(const char *str, const char *errmesg);
8abcf290
DB
13
14#ifndef HAVE_STRNLEN
15extern size_t strnlen(const char *s, size_t maxlen);
16#endif
17#ifndef HAVE_STRNDUP
18extern char *strndup(const char *s, size_t n);
19#endif
20#ifndef HAVE_STRNCHR
21extern char *strnchr(const char *s, size_t maxlen, int c);
22#endif
23
24/* caller guarantees n > 0 */
25static inline void xstrncpy(char *dest, const char *src, size_t n)
26{
27 strncpy(dest, src, n-1);
28 dest[n-1] = 0;
29}
ce877f2d
KZ
30
31extern void strmode(mode_t mode, char *str);
5d2a9849
FC
32
33/* Options for size_to_human_string() */
34enum
35{
36 SIZE_SUFFIX_1LETTER = 0,
37 SIZE_SUFFIX_3LETTER = 1,
38 SIZE_SUFFIX_SPACE = 2
39};
40
41extern char *size_to_human_string(int options, uint64_t bytes);
ce877f2d 42
c87638ad
KZ
43extern int string_to_idarray(const char *list, int ary[], size_t arysz,
44 int (name2id)(const char *, size_t));
45extern int string_to_bitarray(const char *list, char *ary,
46 int (*name2bit)(const char *, size_t));
47
af7df9ee 48extern int parse_range(const char *str, int *lower, int *upper, int def);
a883c634 49
b106d052
PU
50extern int streq_except_trailing_slash(const char *s1, const char *s2);
51
8abcf290 52#endif