Looking for C source code for snprintf()

前端 未结 3 1020
耶瑟儿~
耶瑟儿~ 2021-01-19 16:08

I need to port snprintf() to another platform that does not fully support GLibC.

I am looking for the underlying declaration in the Glibc 2.14 source code. I follow

相关标签:
3条回答
  • 2021-01-19 16:52

    http://www.ijs.si/software/snprintf/ has what they claim is a portable implementation of snprintf, including vsnprintf.c, asnprintf, vasnprintf, asprintf, vasprintf. Perhaps it can help.

    0 讨论(0)
  • 2021-01-19 16:56

    The source code of the GNU C library (glibc) is hosted on sourceware.org.

    Here is a link to the implementation of vfprintf(), which is called by snprintf(): https://sourceware.org/git/?p=glibc.git;a=blob;f=stdio-common/vfprintf.c

    0 讨论(0)
  • 2021-01-19 17:06

    I've spent quite a while digging the sources to find _svfprintf_r() (and friends) definitions in the Newlib. Since OP asked about it, I'll post my finding for the poor souls who need those as well. The following holds true for Newlib 1.20.0, but I guess it is more or less the same across different versions.

    The actual sources are located in the vfprintf.c file. There is a macro _VFPRINTF_R set to one of _svfiprintf_r, _vfiprintf_r, _svfprintf_r, or _vfprintf_r (depending on the build options), and then the actual implementation function is defined accordingly:

    int
    _DEFUN(_VFPRINTF_R, (data, fp, fmt0, ap),
           struct _reent *data _AND
           FILE * fp           _AND
           _CONST char *fmt0   _AND
           va_list ap)
    {
        ...
    
    0 讨论(0)
提交回复
热议问题