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

📄 subr.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include <u.h>#include <libc.h>#include <bio.h>#include "modem.h"int vflag;voidverbose(char *fmt, ...){	va_list arg;	char buf[512];	if(vflag){		va_start(arg, fmt);		vseprint(buf, buf+sizeof(buf), fmt, arg);		va_end(arg);		syslog(0, "fax", buf);	}}voiderror(char *fmt, ...){	va_list arg;	char buf[512];	int n;	n = sprint(buf, "%s: ", argv0);	va_start(arg, fmt);	vseprint(buf+n, buf+sizeof(buf)-n, fmt, arg);	va_end(arg);	fprint(2, buf);	if(vflag)		print(buf+n);	exits("error");}static char *errors[] = {	[Eok]		"no error",	[Eattn]		"can't get modem's attention",	[Enoanswer]	"Retry, no answer or busy",	[Enoresponse]	"Retry, no response from modem",	[Eincompatible]	"Retry, incompatible",	[Esys]		"Retry, system call error",	[Eproto]	"Retry, fax protocol botch",};intseterror(Modem *m, int error){	if(error == Esys)		sprint(m->error, "%s: %r", errors[Esys]);	else		strcpy(m->error, errors[error]);	verbose("seterror: %s", m->error);	return error;}voidfaxrlog(Modem *m, int ok){	char buf[1024];	int n;	n = sprint(buf, "receive %lud %c %d", m->time, ok == Eok ? 'Y': 'N', m->pageno-1);	if(ok == Eok && (m->valid & Vftsi))		sprint(buf+n, " %s", m->ftsi);	syslog(0, "fax", buf);}

⌨️ 快捷键说明

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