📄 get_retmsg.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 + -