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

📄 ndbsubstitute.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include <ndb.h>/* replace a in t with b, the line structure in b is lost, c'est la vie */Ndbtuple*ndbsubstitute(Ndbtuple *t, Ndbtuple *a, Ndbtuple *b){	Ndbtuple *nt;	if(a == b){		ndbsetmalloctag(t, getcallerpc(&t));		return t;	}	if(b == nil){		t = ndbdiscard(t, a);		ndbsetmalloctag(t, getcallerpc(&t));		return t;	}	/* all pointers to a become pointers to b */	for(nt = t; nt != nil; nt = nt->entry){		if(nt->line == a)			nt->line = b;		if(nt->entry == a)			nt->entry = b;	}	/* end of b chain points to a's successors */	for(nt = b; nt->entry; nt = nt->entry)		nt->line = nt->entry;	nt->line = a->line;	nt->entry = a->entry;	a->entry = nil;	ndbfree(a);	if(a == t){		ndbsetmalloctag(b, getcallerpc(&t));		return b;	}else{		ndbsetmalloctag(t, getcallerpc(&t));		return t;	}}

⌨️ 快捷键说明

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