大家好,又见面了,我是你们的朋友全栈君。
看《网络编程》,对bzero等函数的实现颇有兴趣,于是便翻看了其源代码的实现。bzero、bcopy、bcmp等函数源码如下:
bzero源码:
void
bzero(s1, n)
void *s1;
unsigned n;
{
register char *t = s1;
while (n != 0) {
*t++ = 0;
n--;
}
}
bcopy源码如下:
void
bcopy(s1, s2, n)
const void *s1;
void *s2;
unsigned n;
{
register const char *f = s1;
register char *t = s2;
while (n != 0) {
*t++ = *f++;
n--;
}
}
bcmp源码如下:
int
bcmp(b1, b2, length)
const void *b1, *b2;
register size_t length;
{
register char *p1, *p2;
if (length == 0)
return(0);
p1 = (char *)b1;
p2 = (char *)b2;
do
if (*p1++ != *p2++)
break;
while (--length);
return(length);
}
参考网址: http://unix.superglobalmegacorp.com/BSD4.4/newsrc/stand/
http://ftp.cc.uoc.gr/mirrors/OpenBSD/src/sys/lib/libkern/bcmp.c
https://www.delphij.net/fbdoxy/subsys/libkern/html/df/de2/bcmp_8c_source.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/182424.html原文链接:https://javaforall.cn