寻找snprintf()的C源代码

| 我需要将snprintf()移植到不完全支持GLibC的另一个平台上。 我正在寻找Glibc 2.14源代码中的基础声明。我遵循许多函数调用,但是卡在vfprintf()上。然后,它似乎调用_IO_vfprintf(),但找不到该定义。可能是宏混淆了事物。 我需要查看真正的C代码,该代码可以扫描格式字符串并计算如果输入缓冲区足够大时它将写入的字节数。 我也尝试在newlib 1.19.0中进行查找,但是卡在_svfprintf_r()上。我在任何地方都找不到定义。 有人可以指出我的定义还是snprintf()的另一个定义?     
已邀请:
        他们声称http://www.ijs.si/software/snprintf/具有snprintf的可移植实现,包括vsnprintf.c,asnprintf,vasnprintf,asprintf,vasprintf。也许可以帮上忙。     
        我花了很长时间来挖掘源代码,以便在Newlib中找到ѭ0(和朋友)定义。自从OP问了这个问题,我将把我的发现发布给那些也需要这些灵魂的穷人。以下内容适用于Newlib 1.20.0,但我猜它在不同版本中大致相同。 实际来源位于vfprintf.c文件中。宏
_VFPRINTF_R
设置为
_svfiprintf_r
_vfiprintf_r
_svfprintf_r
_vfprintf_r
之一(取决于构建选项),然后相应地定义实际的实现功能:
int
_DEFUN(_VFPRINTF_R, (data, fp, fmt0, ap),
       struct _reent *data _AND
       FILE * fp           _AND
       _CONST char *fmt0   _AND
       va_list ap)
{
    ...
    
        GNU C库(glibc)的源代码托管在sourceware.org上。 这是
snprintf()
的实现的链接,由ѭ8called调用: https://sourceware.org/git/?p=glibc.git;a=blob;f=stdio-common/vfprintf.c     

要回复问题请先登录注册