[英]Where can I find source of unhook function used in STL implementation provided with g++
[英]Where can I find the implementation of strncpy() function in GCC source code?
我已經使用以下命令下載了gcc的源代碼:
svn checkout svn://gcc.gnu.org/svn/gcc/trunk SomeLocalDir
誰能告訴我在哪里可以找到標准庫函數strncpy()的實現?
謝謝。
這些答案是正確的,因為標准C庫將實現strncpy
。 但是 ,gcc具有內置函數,這些函數可以由編譯器生成-作為中間代碼,而不是鏈接函數調用-其中strncpy
是其中之一。 可以使用-fno-builtin
明確禁用它們。
在gcc源代碼樹中,您可以在gcc/builtins.c
和gcc/builtins.def
找到代碼生成模式。 在中間表示中實例化可以進行更積極的優化,並消除呼叫開銷。
gcc
實際上並不包含strncpy
的源代碼,因為gcc
包含編譯器代碼而不是標准庫代碼。
您需要來自GNU libc(glibc)的源:
這是glibc中strncpy.c
當前主干實現的strncpy.c
。
改用glibc會更好。
strncpy屬於C運行時庫,因此您可以在glibc而不是GCC(編譯器)中找到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.