我已经使用以下命令下载了gcc的源代码:
svn checkout svn://gcc.gnu.org/svn/gcc/trunk SomeLocalDir
谁能告诉我在哪里可以找到标准库函数strncpy()的实现?
谢谢。
答案 0 :(得分:4)
gcc
实际上并不包含strncpy
的来源,因为gcc
包含编译器代码而不包含标准库代码。
你想要来自GNU libc(glibc)的源:
这是glibc中strncpy.c
的当前主干实现的链接。
答案 1 :(得分:4)
这些答案是正确的,因为标准C库将实现strncpy
。 但是,gcc具有可由编译器生成的builtin函数 - 作为中间代码,而不是链接的函数调用 - 其中strncpy
是一个。可以使用-fno-builtin
明确禁用这些内容。
在gcc源代码树中,您可以在gcc/builtins.c
和gcc/builtins.def
中找到代码生成模式。在中间表示中实例化允许更积极的优化,并消除调用开销。
答案 2 :(得分:3)
相反,你会有更好的运气looking in glibc。
答案 3 :(得分:0)
strncpy属于C运行时库,因此您可以在glibc而不是GCC(编译器)中找到它。