在哪里可以找到GCC源代码中strncpy()函数的实现?

时间:2012-03-11 05:04:15

标签: c++ c gcc

我已经使用以下命令下载了gcc的源代码:

svn checkout svn://gcc.gnu.org/svn/gcc/trunk SomeLocalDir

谁能告诉我在哪里可以找到标准库函数strncpy()的实现?

谢谢。

4 个答案:

答案 0 :(得分:4)

gcc实际上并不包含strncpy的来源,因为gcc包含编译器代码而不包含标准库代码。

你想要来自GNU libc(glibc)的源:

这是glibc中strncpy.c的当前主干实现的链接。

http://sourceware.org/git/?p=glibc.git;a=blob;f=string/strncpy.c;h=f6ee27832da95d9da9aef8a6fcf73f53f997c796;hb=HEAD

答案 1 :(得分:4)

这些答案是正确的,因为标准C库将实现strncpy但是,gcc具有可由编译器生成的builtin函数 - 作为中间代码,而不是链接的函数调用 - 其中strncpy是一个。可以使用-fno-builtin明确禁用这些内容。

在gcc源代码树中,您可以在gcc/builtins.cgcc/builtins.def中找到代码生成模式。在中间表示中实例化允许更积极的优化,并消除调用开销。

答案 2 :(得分:3)

相反,你会有更好的运气looking in glibc

答案 3 :(得分:0)

strncpy属于C运行时库,因此您可以在glibc而不是GCC(编译器)中找到它。