mirror of
https://github.com/versity/scoutfs.git
synced 2026-09-20 15:04:42 +00:00
scoutfs-utils: add parse_s64()
Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
@@ -29,6 +29,25 @@ int parse_u64(char *str, u64 *val_ret)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int parse_s64(char *str, s64 *val_ret)
|
||||
{
|
||||
long long ll;
|
||||
char *endptr = NULL;
|
||||
|
||||
ll = strtoll(str, &endptr, 0);
|
||||
if (*endptr != '\0' ||
|
||||
((ll == LLONG_MIN || ll == LLONG_MAX) &&
|
||||
errno == ERANGE)) {
|
||||
fprintf(stderr, "invalid 64bit value: '%s'\n", str);
|
||||
*val_ret = 0;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
*val_ret = ll;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int parse_u32(char *str, u32 *val_ret)
|
||||
{
|
||||
u64 val;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <sys/time.h>
|
||||
|
||||
int parse_u64(char *str, u64 *val_ret);
|
||||
int parse_s64(char *str, s64 *val_ret);
|
||||
int parse_u32(char *str, u32 *val_ret);
|
||||
int parse_timespec(char *str, struct timespec *ts);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user