【问题标题】:Where can I find an existing implementation of sprintf? [closed]我在哪里可以找到 sprintf 的现有实现? [关闭]
【发布时间】:2015-04-10 05:40:59
【问题描述】:

我需要自定义c++sprintf函数,进入sprintf后得到_cfltcvt_l,但是Visual Studio中没有_cfltcvt_l源代码。

我在 g++ 中做了同样的事情,它引导我到 __mingw_vsprintf 函数,但我不知道 __mingw_vsprintf 在哪里。

我知道glibc 是其中一种实现,下载后我找不到任何与sprintf 相关的文件,那么谁能告诉我在哪里可以找到sprintf 的现有实现?

【问题讨论】:

    标签: c++ printf implementation glibc


    【解决方案1】:

    glibc 中有很多函数可以遵循:

    首先,sprintf 调用 vsprintf 调用 vfprintf 完成所有工作。我相信 io_IO_ 前缀可能无关紧要。他们可能不是,在这种情况下我的回答是错误的。


    在 MinGW-w64 方面,火车遵循不同的路径:

    首先,您有mingw_sprintf,它调用__pformatmingw_pformat,看起来它可以完成所有工作。


    我从来没有弄清楚 BSD libc 的结构,所以我无法向您展示它们的实现。

    【讨论】:

    • 谢谢,但是您是如何这么快找到特定文件的?我的意思是如何在sourceforge.netsourceware.org 中搜索函数
    • @user1024 好吧,我从@Ofir 的文件链接开始,然后按照逻辑子目录(io、libio、stdio-common),直到找到类似于我正在寻找的东西。有一个搜索框,但仅用于提交,因此您必须筛选它们,直到获得相关的文件名。请注意,我不是 100% 确定 glibc 代码路径,这似乎是合乎逻辑的事情。 MinGW-w64 案例实际上很快就找到了:mingw-w64-crt/stdio/ 一切都已经在那里了。您始终可以使用例如克隆存储库并在本地副本上搜索grep 也是。
    • 感谢您的帮助。
    【解决方案2】:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2019-07-31
    相关资源
    最近更新 更多