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

📄 get_retmsg.c

📁 API
💻 C
字号:

/*=============================================================
功能: 		获得87年版码的中文信息, 此信息放在$(WORKDIR)/etc/ERRMSG
      		中, 利用 vi 可更改/增加/删除返回码信息	

		get_init_retmsg() 预先把返回信息读到内存中
		get_retmsg() 根据retcode从内存中获得retmsg
wyz:2001/03/29:规范程序设计
===============================================================*/

#include <stdio.h>
#include "mytools.h"

struct retmsg {
	char		retcode[4];
	char		retmsg[40];
	struct retmsg	*next;
} retmsg;

struct retmsg	*msgptr;

/***************************************************************
功能:
1. 打开存放返回信息的文件" $WORKDIR/etc/ERRMSG"
2 读取文件中的"retcode","retmsg"信息,并将它们放到内存中
ENTRY:
RETURN:
	0	SUCC
	-1	FAIL
****************************************************************/
int get_init_retmsg()
{
struct	retmsg	*p, *p1;
FILE	*fp;
char	*errfile, retcode[20], retmsg[80];

	msgptr = NULL;

	errfile = (char *) getfname( "WORKDIR", "/etc/ERRMSG" );
	if( (fp=fopen(errfile , "r") ) == NULL ) {
		errcall( ERROR, "open ERRMSG file(%s) error", errfile);
		return( -1 );
	}

	fscanf( fp, "%s %s", retcode, retmsg );

	p = (struct retmsg *)malloc( sizeof(struct retmsg) );
	sprintf( p->retcode, "%s", retcode );
	sprintf( p->retmsg, "%s", retmsg );
	p->next = NULL;

	msgptr = p;  
	p1 = msgptr;

	while( !feof(fp) ) {
		fscanf( fp, "%s %s", retcode, retmsg );

		p = (struct retmsg *)malloc( sizeof(struct retmsg) );
		memcpy( p->retcode, retcode, 3 );
		p->retcode[3] = 0;
		memcpy( p->retmsg, retmsg, 39 );
		p->retmsg[39] = 0;
		p->next = NULL;

		p1->next = p;  
		p1 = p1->next;
	}

	fclose( fp );
	return( 0 );
}

/***************************************************************
功能:
根据返回码"retcode"查找返回信息"retmsg"
ENTRY:
	retcode
	retmsg
RETURN:
****************************************************************/
get_retmsg( retcode, retmsg )
char	*retcode;
char	*retmsg;
{
struct	retmsg	*p;

	p = msgptr;	

	while( p != NULL ) {
		if( memcmp( p->retcode, retcode, 2 ) == 0 ) {
			strcpy( retmsg, p->retmsg );
			return;
		}
		p = p->next;
	}
	strcpy( retmsg, "无此返回" );
	return;
}

⌨️ 快捷键说明

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