当前位置:  技术问答>linux和unix

如何将vsprintf加入系统标准函数库中

    来源: 互联网  发布时间:2016-03-03

    本文导语:  我写了一程序在板子(嵌入式linux)上运行, 但是提示找不到vsprintf函数. 可能是板子不支持. 我想自己找一个vsprintf函数加入到系统标准函数库中. 请各位不吝赐教. 不胜感谢! | 上面的太乱了,...

我写了一程序在板子(嵌入式linux)上运行, 但是提示找不到vsprintf函数. 可能是板子不支持. 我想自己找一个vsprintf函数加入到系统标准函数库中. 请各位不吝赐教. 不胜感谢!

|
上面的太乱了,重新帖一次。才知道有code方式,不好意思
int vsprintf(char *buf, const char *fmt, va_list args)
{
int len;
#ifdef CFG_64BIT_VSPRINTF
unsigned long long num;
#else
unsigned long num;
#endif
int i, base;
char * str;
const char *s;

int flags; /* flags to number() */

int field_width; /* width of output field */
int precision; /* min. # of digits for integers; max
   number of chars for from string */
int qualifier; /* 'h', 'l', or 'q' for integer fields */

for (str=buf ; *fmt ; ++fmt) {
if (*fmt != '%') {
*str++ = *fmt;
continue;
}

/* process flags */
flags = 0;
repeat:
++fmt; /* this also skips first '%' */
switch (*fmt) {
case '-': flags |= LEFT; goto repeat;
case '+': flags |= PLUS; goto repeat;
case ' ': flags |= SPACE; goto repeat;
case '#': flags |= SPECIAL; goto repeat;
case '0': flags |= ZEROPAD; goto repeat;
}

/* get field width */
field_width = -1;
if (is_digit(*fmt))
field_width = skip_atoi(&fmt);
else if (*fmt == '*') {
++fmt;
/* it's the next argument */
field_width = va_arg(args, int);
if (field_width 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3