在busybox中有出现xatou与xatoul_range两个函数,但是无法找到其在busybox中的定义,经过一番google,找到一个能用的,但不保证busybox中就是它。。。
- int xatou(char *buf)
- {
- char c;
- int i;
- int j = 0;
- int retval = 0;
- char mod[3] = {1, 10, 100};
- int len = strlen(buf);
- if ( (!len)||(len > 3) )
- {
- return -1;
- }
- for (i = len - 1; i >= 0; i--)
- {
- c = buf[i];
- retval += atoi(&c)*mod[j++];
- }
- return retval;
- }
- int xatoul_range(char *buf, int low, int top)
- {
- int retval = xatou(buf);
- if (retval < low)
- {
- retval = low;
- }
- if (retval > top)
- {
- retval = top;
- }
- printf("buf = %s\n", buf);
- printf("###retval = %d\n", retval);
- return retval;
- }
源码可参考http://read.pudn.com/downloads103/sourcecode/unix_linux/network/425192/ftp.c__.htm
本文介绍了在busybox中找不到定义的xatou和xatoul_range两个函数,并提供了可能的实现。xatou函数通过遍历字符串反向计算整数值,而xatoul_range则在其基础上增加了范围限制,确保返回值在指定范围内。源码参考链接见正文。
2138

被折叠的 条评论
为什么被折叠?



