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