scoutfs-utils: add parse_s64()

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2020-05-29 13:50:25 -07:00
committed by Zach Brown
parent 247e22f56f
commit 0a8faf3e94
2 changed files with 20 additions and 0 deletions
+19
View File
@@ -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;
+1
View File
@@ -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);