4

我对 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)。

为什么会这样?

4

1 回答 1

6

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

于 2013-01-03T09:34:58.430 回答