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

📄 bperr.c

📁 一个通讯程序源码
💻 C
字号:
/*+-------------------------------------------------------------------------	bperr.c - build proc_error .c from ecuerror.h	wht@n4hgf.Mt-Park.GA.US--------------------------------------------------------------------------*//*+:EDITS:*//*:09-10-1992-13:58-wht@n4hgf-ECU release 3.20 *//*:08-22-1992-15:38-wht@n4hgf-ECU release 3.20 BETA *//*:07-25-1991-12:55-wht@n4hgf-ECU release 3.10 *//*:08-14-1990-20:39-wht@n4hgf-ecu3.00-flush old edit history */#include <stdio.h>#include <time.h>#define MAXLINE 256#define MAXFLDS 50char *strchr();char line[MAXLINE];char copy[MAXLINE];char *fields[MAXFLDS + 1];char *bc = "/*+-------------------------------------------------------------------------";char *ec = "--------------------------------------------------------------------------*/";/*+-------------------------------------------------------------------------	splitter(sep)--------------------------------------------------------------------------*/splitter(sep)char *sep;{char *tmp = copy;register int fld;	for (fld = 1; fld <= MAXFLDS; fld++)		fields[fld] = NULL;	if (!strlen(sep) || !strlen(line))		return(0);	fld = 1;	sprintf(copy, "%s", line);	while (fld < MAXFLDS)	{		while (strchr(sep, *tmp))			if (!*++tmp) return fld;		fields[fld++] = tmp++;		while (!strchr(sep, *tmp))			if (!*++tmp) return fld;		*tmp++ = '\0';	}	return(fld);}	/* end of splitter *//*+-------------------------------------------------------------------------	main(argc,argv)--------------------------------------------------------------------------*/main(argc,argv)int argc;char **argv;{register field_count;register itmp;long time();struct tm *localtime();long cur_time;struct tm *ltime;FILE *fp;char cmd[256];	freopen("proc_error.c","w",stdout);	puts(bc);	puts("\tproc_error.c - print ecu procedure error");	puts(ec);	puts("/*+:EDITS:*/");	cur_time = time((long *)0);	ltime = localtime(&cur_time);	printf(	"/*:%02d-%02d-%04d-%02d:%02d-build_err-creation from ecuerror.h */\n",	    ltime->tm_mon+1,ltime->tm_mday,ltime->tm_year + 1900,	    ltime->tm_hour,ltime->tm_min);	puts("");	puts("#include \"ecu.h\"");	puts("#include \"ecuerror.h\"");	puts("");	puts(bc);	puts("\tproc_error(erc) - print error message");	puts(ec);	puts("void");	puts("proc_error(erc)");	puts("int erc;");	puts("{");	puts("\tswitch(erc)");	puts("\t{");	for(itmp = 0; itmp <= MAXFLDS; itmp++)		fields[itmp] = NULL;	fp = fopen("ecuerror.h","r");	while(fgets(line,sizeof(line),fp))	{		line[strlen(line) - 1] = 0;		fields[0] = line;		field_count = splitter(" \t");		if(!field_count || (strcmp(fields[1],"#define")))			continue;		if((!strcmp(fields[2],"eFATAL_ALREADY")) ||			(!strcmp(fields[2],"eWARNING_ALREADY")) ||			(!strncmp(fields[2],"_e",2)) ||			(!strncmp(fields[2],"e_",2)))			continue;		printf("\t\tcase %s:\n",fields[2]);		fputs("\t\t\tpputs(\"",stdout);		for(itmp = 1; itmp < field_count - 1; itmp++)			if(!strcmp(fields[itmp],"/*"))				break;		itmp++;		for(; itmp < field_count - 1; itmp++)		{			fputs(fields[itmp],stdout);			if(itmp != field_count - 2)				fputc(' ',stdout);		}		fputs("\\n\");\n",stdout);		puts("\t\t\tbreak;");	}	puts("\t\tcase eFATAL_ALREADY:");	puts("\t\tcase eWARNING_ALREADY:");	puts("\t\t\tbreak;");	puts("\t\tdefault:");	puts("\t\t\tpprintf(\"unknown error %x\\n\",erc);");	puts("\t\t\tbreak;");	puts("\t}");	puts("} /* end of proc_error */\n");	puts("/* vi: set tabstop=4 shiftwidth=4: */");	puts("/* end of proc_error.c */");	freopen("/dev/tty","a",stdout);	sprintf(cmd,"fcrc -u proc_error.c");	system(cmd);	exit(0);}	/* end of main *//* vi: set tabstop=4 shiftwidth=4: *//* end of bperr.c */

⌨️ 快捷键说明

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