unittoull.c 398 B

123456789101112131415161718192021222324252627
  1. #include "stdinc.h"
  2. #define TWID64 ((u64int)~(u64int)0)
  3. u64int
  4. unittoull(char *s)
  5. {
  6. char *es;
  7. u64int n;
  8. if(s == nil)
  9. return TWID64;
  10. n = strtoul(s, &es, 0);
  11. if(*es == 'k' || *es == 'K'){
  12. n *= 1024;
  13. es++;
  14. }else if(*es == 'm' || *es == 'M'){
  15. n *= 1024*1024;
  16. es++;
  17. }else if(*es == 'g' || *es == 'G'){
  18. n *= 1024*1024*1024;
  19. es++;
  20. }
  21. if(*es != '\0')
  22. return TWID64;
  23. return n;
  24. }