【问题标题】:Cannot find puts() in glibc source code在 glibc 源代码中找不到 puts()
【发布时间】:2012-12-17 15:37:00
【问题描述】:

我对 Linux/C 非常陌生。

在我的 Linux 上的 glibc(eglibs-2.15) 源代码中,我只能在 /libio/stdio.h 中找到 puts() 声明

extern int puts (__const char *__s);

但在 glibc 源代码中的任何地方都找不到 puts() 的源代码。我的猜测是 puts() 依赖于系统,它的来源在其他地方。 问题:我在哪里可以找到 puts() 源?

此外,在某些系统上 puts() 的源似乎可用,例如在 Apple (http://www.opensource.apple.com/source/Libc/Libc-186/stdio.subproj/puts.c) 或 NetBSD (https://www-asim.lip6.fr/trac/netbsdtsar/browser/ vendor/netbsd/5-20091104/src/lib/libc/stdio/puts.c?rev=160)。

为什么会这样?

【问题讨论】:

    标签: linux glibc


    【解决方案1】:

    在 glibc 中,puts 是 _IO_puts 函数的别名,在 ./libio/ioputs.c 中定义

    【讨论】:

    • @self 我想是弱别名。我想知道为什么printf 没有它。
    猜你喜欢
    • 2011-09-15
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2023-03-16
    • 2014-04-07
    • 2015-05-27
    • 1970-01-01
    相关资源
    最近更新 更多