bzero等函数源代码实现

原创 2013年07月15日 08:34:48

看《网络编程》,对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

相关文章推荐

bzero, bcopy等函数源代码实现

bzero源码: [cpp] view plain copy  print? void   bzero(s1, n)       void *s1;       unsigned...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C语言中关于free函数、bzero函数的使用

#include #include #include #include #include #include #include #include #define BUFF...
  • YSBJ123
  • YSBJ123
  • 2016年06月22日 20:19
  • 500

IPVS源代码分析----发送函数的实现

[发送方法实现] NAT发送只发送请求方向的数据,因此是进行目的NAT int ip_vs_nat_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, s...
  • a_jige
  • a_jige
  • 2014年02月26日 16:03
  • 1675

PHP源代码分析-字符串搜索系列函数实现详解

今天和同事在讨论关键字过虑的算法实现,前几天刚看过布隆过滤算法,于是就想起我们公司内部的查找关键字程序,好奇是怎么实现的。于是查找了一下源代码,原来可以简单地用stripos函数查找,stripos原...

bzero, memset ,setmem 区别

bzero   原型: extern void bzero(void *s, int n); 用法: #include      功能:置字节字符串s的前n个字节为零。   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:bzero等函数源代码实现
举报原因:
原因补充:

(最多只允许输入30个字)