簡體   English   中英

在哪里可以找到GCC源代碼中strncpy()函數的實現?

[英]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.cgcc/builtins.def找到代碼生成模式。 在中間表示中實例化可以進行更積極的優化,並消除呼叫開銷。

gcc實際上並不包含strncpy的源代碼,因為gcc包含編譯器代碼而不是標准庫代碼。

您需要來自GNU libc(glibc)的源:

這是glibc中strncpy.c當前主干實現的strncpy.c

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

改用glibc會更好。

strncpy屬於C運行時庫,因此您可以在glibc而不是GCC(編譯器)中找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM