查看C语言库函数源码
如需转载请标明出处:http://blog.csdn.net/itas109
文章目录
- 查看C语言库函数源码
- 1. visual studio
- 2. glibc
- 3. llvm
- 4. 其他
例如查找string.h头文件中的strncpy函数源码
1. visual studio
C:\Program Files (x86)\Windows Kits\10\Source\10.0.17763.0\ucrt\string\strncpy.c
char * __cdecl strncpy (
char * dest,
const char * source,
size_t count
)
{
char *start = dest;
while (count && (*dest++ = *source++) != '\0') /* copy string */
count--;
if (count) /* pad out with zeroes */
while (--count)
*dest++ = '\0';
return(start);
}
2. glibc
glibc-2.36\string\strncpy.c
char *
STRNCPY (char *s1, const char *s2, size_t n)
{
size_t size = __strnlen (s2, n);
if (size != n)
memset (s1 + size, '\0', n - size);
return memcpy (s1, s2, size);
}
3. llvm
llvm-project-llvmorg-12.0.1\libc\src\string\strncpy.cpp
LLVM_LIBC_FUNCTION(char *, strncpy,
(char *__restrict dest, const char *__restrict src,
size_t n)) {
size_t i = 0;
// Copy up until \0 is found.
for (; i < n && src[i] != '\0'; ++i)
dest[i] = src[i];
// When n>strlen(src), n-strlen(src) \0 are appended.
for (; i < n; ++i)
dest[i] = '\0';
return dest;
}
4. 其他
License
License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎
如需转载请标明出处:http://blog.csdn.net/itas109
Reference:
NULL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)