dump.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 85 行

C
85
字号
#include <u.h>#include <libc.h>#include <ip.h>#include <ctype.h>#include "dat.h"#include "protos.h"static voidp_compile(Filter *){}static char tohex[16] = {	'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',	'a', 'b', 'c', 'd', 'e', 'f'};static intp_seprint(Msg *m){	int c, i, n, isstring;	uchar *ps = m->ps;	char *p = m->p;	char *e = m->e;	n = m->pe - ps;	if(n > Nflag)		n = Nflag;	isstring = 1;	for(i = 0; i < n; i++){		c = ps[i];		if(!isprint(c) && !isspace(c)){			isstring = 0;			break;		}	}	if(isstring){		for(i = 0; i < n && p+1<e; i++){			c = ps[i];			switch(c){			case '\t':				*p++ = '\\';				*p++ = 't';				break;			case '\r':				*p++ = '\\';				*p++ = 'r';				break;			case '\n':				*p++ = '\\';				*p++ = 'n';				break;			default:				*p++ = c;			}		}	} else {		for(i = 0; i < n && p+1<e; i++){			c = ps[i];			*p++ = tohex[c>>4];			*p++ = tohex[c&0xf]; 		}	}	m->pr = nil;	m->p = p;	m->ps = ps;	return 0;}Proto dump ={	"dump",	p_compile,	nil,	p_seprint,	nil,	nil,	nil,	defaultframer,};

⌨️ 快捷键说明

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