⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ndbgetipaddr.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include <ndb.h>#include <ip.h>/* return list of ip addresses for a name */Ndbtuple*ndbgetipaddr(Ndb *db, char *val){	char *attr, *p;	Ndbtuple *it, *first, *last, *next;	Ndbs s;	/* already an IP address? */	attr = ipattr(val);	if(strcmp(attr, "ip") == 0){		it = ndbnew("ip", val);		ndbsetmalloctag(it, getcallerpc(&db));		return it;	}	/* look it up */	p = ndbgetvalue(db, &s, attr, val, "ip", &it);	if(p == nil)		return nil;	free(p);	/* remove the non-ip entries */	first = last = nil;	for(; it; it = next){		next = it->entry;		if(strcmp(it->attr, "ip") == 0){			if(first == nil)				first = it;			else				last->entry = it;			it->entry = nil;			it->line = first;			last = it;		} else {			it->entry = nil;			ndbfree(it);		}	}	ndbsetmalloctag(first, getcallerpc(&db));	return first;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -