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

📄 ysapi.pc

📁 unix 下用pro*c tuxedo 开发的东西
💻 PC
📖 第 1 页 / 共 2 页
字号:

/*** convert from stZDSM to stZDDB ***/



int ZDSMMsgConvert( struct stZDYSMsgHeader stZDSM,struct stZDYSSMDBRec *stZDDB )

{

	trim(stZDSM.yslx);

	trim(stZDSM.wjbh);

	trim(stZDSM.qdqa);

	trim(stZDSM.kq);

	trim(stZDSM.dingj);

	trim(stZDSM.dyzs);

	trim(stZDSM.dyk);

	trim(stZDSM.lszs);

	trim(stZDSM.lsk);

	trim(stZDSM.fssbh);

	trim(stZDSM.bkdh);

	trim(stZDSM.yxnf);

	trim(stZDSM.fsxh);

	strcpy(stZDDB->yslx,stZDSM.yslx);

	strcpy(stZDDB->wjbh,stZDSM.wjbh);

	stZDDB->qdqa = atoi(stZDSM.qdqa);

	strcpy(stZDDB->kq,stZDSM.kq);

	stZDDB->dingj=atof( stZDSM.dingj);

	stZDDB->dyzs =atol(stZDSM.dyzs);

	stZDDB->dyk  =atof(stZDSM.dyk);

	stZDDB->lszs =atol(stZDSM.lszs);

	stZDDB->lsk  =atof(stZDSM.lsk);

	strcpy(stZDDB->fssbh,stZDSM.fssbh);

	strcpy(stZDDB->bkdh,stZDSM.bkdh);

	stZDDB->nf=atoi(stZDSM.yxnf);

	stZDDB->xh =atol(stZDSM.fsxh);

	return(0);

}



/*** convert from stPDSM to stPDDB ***/



int PDSMMsgConvert(struct stPDYSMsgHeader stPDSM,struct stPDYSSMDBRec *stPDDB )

{

	trim(stPDSM.yslx);

	trim(stPDSM.wjbh);

	trim(stPDSM.qdqa);

	trim(stPDSM.qdqb);

	trim(stPDSM.zdqa);

	trim(stPDSM.zdqb);

	trim(stPDSM.kq);

	trim(stPDSM.dingj);

	trim(stPDSM.dyzs);

	trim(stPDSM.dyk);

	trim(stPDSM.lszs);

	trim(stPDSM.lsk);

	trim(stPDSM.fssbh);

	trim(stPDSM.bkdh);

	trim(stPDSM.yxnf);

	trim(stPDSM.fsxh);

	strcpy(stPDDB->bkdh,stPDSM.bkdh);

	strcpy(stPDDB->yslx,stPDSM.yslx);

	strcpy(stPDDB->wjbh,stPDSM.wjbh);

	stPDDB->qdqa = atoi(stPDSM.qdqa);

	stPDDB->qdqb = atoi(stPDSM.qdqb);

	if(stPDSM.zdqa[0]!='\0')
		stPDDB->zdqa = atoi(stPDSM.zdqa);

	if(stPDSM.zdqb[0]!='\0')
		stPDDB->zdqb = atoi(stPDSM.zdqb);

	strcpy(stPDDB->kq,stPDSM.kq);

	stPDDB->dingj=atof( stPDSM.dingj);

	stPDDB->dyzs =atol(stPDSM.dyzs);

	stPDDB->dyk  =atof(stPDSM.dyk);

	stPDDB->lszs =atol(stPDSM.lszs);

	stPDDB->lsk  =atof(stPDSM.lsk);

	strcpy(stPDDB->fssbh,stPDSM.fssbh);

	stPDDB->nf=atoi(stPDSM.yxnf);

	stPDDB->xh =atol(stPDSM.fsxh);

	return(0);

}



/*** convert to stZDSJDB ***/



int ZDSJMsgConvert(struct stZDYSMsgHeader stZDSM,struct stZDYSMsgRec stZDSJ,struct stZDYSDBRec *stZDSJDB )

{

	trim(stZDSJ.yffs);

	trim(stZDSJ.qzlss);

	trim(stZDSJ.zfjbh);

	trim(stZDSM.fssbh);

	trim(stZDSM.fsxh);

	stZDSJDB->yffs =atol(stZDSJ.yffs);

	stZDSJDB->qzlss=atol(stZDSJ.qzlss);

/*	stZDSJDB->zfjbh=atol(stZDSJ.zfjbh);
*/
	strcpy(stZDSJDB->zfjbh,stZDSJ.zfjbh);
	strcpy(stZDSJDB->sjbh,stZDSM.fssbh);

	stZDSJDB->xh =atol(stZDSM.fsxh);

	return(0);

}



/*** convert to stPDSJDB ***/



int PDSJMsgConvert(struct stPDYSMsgHeader stPDSM,struct stPDYSMsgRec stPDSJ,struct stPDYSDBRec *stPDSJDB )

{

	trim(stPDSJ.zjfs);

	trim(stPDSJ.lszjfs);

	trim(stPDSJ.zfjbh);

	trim(stPDSM.fssbh);

	trim(stPDSM.fsxh);

	stPDSJDB->zjfs =atol(stPDSJ.zjfs);

	stPDSJDB->lszjfs=atol(stPDSJ.lszjfs);

/*	stPDSJDB->zfjbh=atol(stPDSJ.zfjbh);
*/
	strcpy(stPDSJDB->zfjbh,stPDSJ.zfjbh);
	strcpy(stPDSJDB->sjbh,stPDSM.fssbh);

	stPDSJDB->xh =atol(stPDSM.fsxh);

	return(0);

}



/*** insert the zd data from MQ to database ***/



int ZDYSRcvRecDB( char *message,long int msglen )

{

	struct stZDYSMsgHeader stZDSM;

	struct stZDYSMsgRec    stZDSJ;

	struct stZDYSSMDBRec   stZDSMDB;

	struct stZDYSDBRec     stZDSJDB;

	struct stZDYSSM_id     ZDid;

	int count_rec;

	int i;

	int flag;

	short qzlss_id;

	

	count_rec=(msglen-ZDSM_MSG_LEN)/YSSJ_MSG_LEN;

	flag=ZDYSSMRcv( message,&stZDSM );

	if( flag!=0 )

	{

		return(-1);

	}

	ZDSMMsgConvert(stZDSM,&stZDSMDB);

/*	printf(",%s,%s,%d,%s,\n",stZDSMDB.yslx,stZDSMDB.wjbh,stZDSMDB.qdqa,stZDSMDB.kq);

	printf(",%.2f,%d,%.2f,%d\n",stZDSMDB.dingj,stZDSMDB.dyzs,stZDSMDB.dyk,stZDSMDB.lszs);

	printf(",%.2f,%s,%s,%d,%ld\n",stZDSMDB.lsk,stZDSMDB.fssbh,stZDSMDB.bkdh,stZDSMDB.nf,stZDSMDB.xh);

*/	ERROR=0;

	EXEC SQL WHENEVER SQLERROR DO sqlerror();


/*	EXEC SQL INSERT INTO t_jszdyssm VALUES 

		(:stZDSMDB.yslx,

		 :stZDSMDB.wjbh,

		 :stZDSMDB.qdqa :ZDid.qdqa,

		 :stZDSMDB.kq,

		 :stZDSMDB.dingj :ZDid.dingj,

		 :stZDSMDB.dyzs  :ZDid.dyzs,

		 :stZDSMDB.dyk   :ZDid.dyk,

		 :stZDSMDB.lszs  :ZDid.lszs,

		 :stZDSMDB.lsk   :ZDid.lsk,

		 :stZDSMDB.fssbh,

		 :stZDSMDB.bkdh,

		 :stZDSMDB.nf    :ZDid.nf,

		 :stZDSMDB.xh);

*/

	EXEC SQL INSERT INTO t_jszdyssm VALUES 

		(:stZDSMDB.yslx,

		 :stZDSMDB.wjbh,

		 :stZDSMDB.qdqa ,

		 :stZDSMDB.kq,

		 :stZDSMDB.dingj ,

		 :stZDSMDB.dyzs  ,

		 :stZDSMDB.dyk   ,

		 :stZDSMDB.lszs  ,

		 :stZDSMDB.lsk   ,

		 :stZDSMDB.fssbh,

		 :stZDSMDB.bkdh,

		 :stZDSMDB.nf    ,

		 :stZDSMDB.xh);

	if( ERROR!=0 )

	{

		ERROR=0;

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert into yssm!",END);
		return(-1);

	}

	

	for( i=0;i<count_rec;i++ )

	{

		ZDYSSJRcv( message,&stZDSJ );

		ZDSJMsgConvert(stZDSM,stZDSJ,&stZDSJDB);

		ERROR=0;

		EXEC SQL WHENEVER SQLERROR DO sqlerror();

/*		EXEC SQL INSERT INTO t_jszdyssj VALUES (

			:stZDSJDB.yffs,:stZDSJDB.qzlss :qzlss_id,

			:stZDSJDB.zfjbh,:stZDSJDB.sjbh,:stZDSJDB.xh);

*/

		EXEC SQL INSERT INTO t_jszdyssj (yffs,zfjbh,sjbh,jsxh) VALUES (

			:stZDSJDB.yffs,
			:stZDSJDB.zfjbh,:stZDSJDB.sjbh,:stZDSJDB.xh);





		if( ERROR!=0 )

		{

			ERROR=0;

			ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert into yssj!",END);
			return(-1);

		}

	}

	return(0);

}



/***  insert pd data to database  ***/



int PDYSRcvRecDB( char *message,long int msglen )

{

	struct stPDYSMsgHeader stPDSM;

	struct stPDYSMsgRec    stPDSJ;

	struct stPDYSSMDBRec   stPDSMDB;

	struct stPDYSDBRec     stPDSJDB;

	struct stPDYSSM_id     PDid;

	int count_rec;

	int i;

	int flag;

	short lszjfs_id;

	

	count_rec=(msglen-PDSM_MSG_LEN)/YSSJ_MSG_LEN;

	flag=PDYSSMRcv( message,&stPDSM );

	if( flag!=0 )

	{

		return(-1);

	}

	PDSMMsgConvert(stPDSM,&stPDSMDB);

/*	printf(",%s,%s,%s,%d,\n",stPDSMDB.bkdh,stPDSMDB.yslx,stPDSMDB.wjbh,stPDSMDB.qdqa);

	printf(",%d,%d,%d,\n",stPDSMDB.qdqb,stPDSMDB.zdqa,stPDSMDB.zdqb);

	printf(",%s,%.2f,%ld,%.2f\n",stPDSMDB.kq,stPDSMDB.dingj,stPDSMDB.dyzs,stPDSMDB.dyk);

	printf(",%ld,%.2f,\n",stPDSMDB.lszs,stPDSMDB.lsk);

	printf(",%s,%d,%ld,\n",stPDSMDB.fssbh,stPDSMDB.nf,stPDSMDB.xh);

*/	

	ERROR=0;

	EXEC SQL WHENEVER SQLERROR DO sqlerror();

/*	EXEC SQL INSERT INTO t_jspdyssm VALUES

		(:stPDSMDB.bkdh,

		 :stPDSMDB.yslx,

		 :stPDSMDB.wjbh,

		 :stPDSMDB.qdqa :PDid.qdqa,

		 :stPDSMDB.qdqb :PDid.qdqb,

		 :stPDSMDB.zdqa :PDid.zdqa,

		 :stPDSMDB.zdqb :PDid.zdqb,

		 :stPDSMDB.kq,

		 :stPDSMDB.dingj :PDid.dingj,

		 :stPDSMDB.dyzs :PDid.dyzs,

		 :stPDSMDB.dyk :PDid.dyk,

		 :stPDSMDB.lszs :PDid.lszs,

		 :stPDSMDB.lsk :PDid.lsk,

		 :stPDSMDB.fssbh,

		 :stPDSMDB.nf :PDid.nf,

		 :stPDSMDB.xh);

*/

	if( stPDSMDB.yslx[0]=='5' || stPDSMDB.yslx[0]=='6' )
		EXEC SQL INSERT INTO t_jspdyssm
			(bkdh,yslx,wjbh,qdqa,zdqa,kq,dingj,dyzs,dyk,lszs,lsk,sjbh,yxnf,jsxh)
		 VALUES

		(:stPDSMDB.bkdh,

		 :stPDSMDB.yslx,

		 :stPDSMDB.wjbh,

		 :stPDSMDB.qdqa ,

		 :stPDSMDB.zdqa ,

		 :stPDSMDB.kq,

		 :stPDSMDB.dingj ,

		 :stPDSMDB.dyzs ,

		 :stPDSMDB.dyk ,

		 :stPDSMDB.lszs ,

		 :stPDSMDB.lsk ,

		 :stPDSMDB.fssbh,

		 :stPDSMDB.nf ,

		 :stPDSMDB.xh);

	else
		EXEC SQL INSERT INTO t_jspdyssm VALUES

		(:stPDSMDB.bkdh,

		 :stPDSMDB.yslx,

		 :stPDSMDB.wjbh,

		 :stPDSMDB.qdqa ,

		 :stPDSMDB.qdqb ,

		 :stPDSMDB.zdqa ,

		 :stPDSMDB.zdqb ,

		 :stPDSMDB.kq,

		 :stPDSMDB.dingj ,

		 :stPDSMDB.dyzs ,

		 :stPDSMDB.dyk ,

		 :stPDSMDB.lszs ,

		 :stPDSMDB.lsk ,

		 :stPDSMDB.fssbh,

		 :stPDSMDB.nf ,

		 :stPDSMDB.xh);

	if( ERROR !=0 )

	{

		ERROR=0;

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert yssm!",END);
		return(-1);

	}

	

	for( i=0;i<count_rec;i++ )

	{

		PDYSSJRcv( message,&stPDSJ );

		PDSJMsgConvert(stPDSM,stPDSJ,&stPDSJDB);



		ERROR=0;

		EXEC SQL WHENEVER SQLERROR DO sqlerror();

/*		EXEC SQL INSERT INTO t_jspdyssj VALUES (

			:stPDSJDB.zjfs,:stPDSJDB.lszjfs :lszjfs_id,

			:stPDSJDB.zfjbh,:stPDSJDB.sjbh,:stPDSJDB.xh);

*/

		EXEC SQL INSERT INTO t_jspdyssj (zjfs,zfjbh,sjbh,jsxh) VALUES (

			:stPDSJDB.zjfs,
			:stPDSJDB.zfjbh,:stPDSJDB.sjbh,:stPDSJDB.xh);

		if( ERROR!=0 )

		{

			ERROR=0;

			ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert into yssj!",END);
			return(-1);

		}

	}

	return(0);

}



int Snd_HZ_MQ( long int fsxh, char *fssbh, char *jssbh )

{

	char buf_hz[15];

	char c_fsxh[11];

	int  ret_code;

	int sndcode;



	sprintf(buf_hz,"%10ld%2s%2s",fsxh,fssbh,jssbh);
	buf_hz[14]='\0';

	sndcode=atoi(fssbh);

#ifdef DEBUG
	printf("hzmsg ##%s##\n",buf_hz);
#endif
	ret_code = MQBKSend_Syn( strlen(buf_hz), buf_hz, sndcode, "HZ" );

      	if ( ret_code < 0 )

        {

   		ProcessError(LOG_ERROR,"PCS_RCV_YS: MQ hz did not send successful!",END);

            	return(-1);

       	} 

        ret_code = MQBKCmit();

      	if ( ret_code < 0 )

        {

   		ProcessError(LOG_ERROR,"PCS_RCV_YS: MQ hz did not commit successful!",END);

            	return(-1);

       	} 

        

	return(0);



}





/***  distinguish zd and pd, and handle the message  ***/



int PcsRcvYS(char *message,long int msglen)

{

	char datatype;

	char fssbh[3];

	char jssbh[3];

	char tempstring[MID_LEN];

	char tmp_str[MID_LEN];
	long int lg_Key;

	int flag;

	int retcode=0,kd;

	char *tmp_point;
	char yslx_checkzxbf,jsys_zxbf='7';
	int count_zfj_zz,count_yssj_zz;
	long int count_DYZS,count_YSZFS;
	long int count_DY_LS;
	

	zdnumpoint=85;

	pdnumpoint=91;

	

	/**  distinguish pd from zd by the yslx character  **/


	if( message[21]=='1'||message[21]=='2'||message[21]=='7'||message[21]=='8' )

		datatype='1';

	else if( message[21]=='3'||message[21]=='4'||message[21]=='5'||message[21]=='6' )

		datatype='2';

	else 

	{

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error when read yslx from MQ",END);

		

		return(-1);

	}

	
	tmp_point=message;
	myapi_ReadString(message,fssbh,12,13);

	myapi_ReadString(message,jssbh,10,11);

	myapi_ReadString(message,tempstring,0,9);

	lg_Key=atol( tempstring );


	flag=CreateRecLogRec( datatype, fssbh, lg_Key );

	if( flag!=1 )

	{

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error use function ", "CreateRecLogRec");

		return(-1);

	}
#ifdef	DEBUG
	printf("datatype,fssbh,key:%c,%s,%ld\n",datatype,fssbh,lg_Key);

#endif
	if( datatype=='1' )

	{

		flag=ZDYSRcvRecDB( message,msglen );

		if( flag!=0 )

		{

			ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert zd data from message to database",END);

			return(-1);

		}

	}

	else

	{

		flag=PDYSRcvRecDB( message,msglen );

		if( flag!=0 )

		{

			ProcessError(LOG_ERROR,"PCS_RCV_YS: error when insert pd data from message to database",END);

			return(-1);

		}

	}

#ifdef DEBUG
	printf("put ys to database success\n");
#endif
	flag=UpdateJSRZ_rec( lg_Key,fssbh );

	if( flag!=1 )

	{

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error use function ", "UpdateJSRZ_rec");

		return(-1);

	}

	EXEC SQL VAR jssbh IS STRING;

	EXEC SQL SELECT bsbh INTO :jssbh FROM T_BSBH;


	yslx_checkzxbf=message[21];
	if( yslx_checkzxbf=='1' || yslx_checkzxbf=='7' )
	{
		EXEC SQL SELECT count(*) INTO :count_zfj_zz FROM t_jszfjbnr WHERE sjbh=:fssbh ;
		EXEC SQL SELECT count(*) INTO :count_yssj_zz FROM t_jszdyssj WHERE sjbh=:fssbh AND jsxh=:lg_Key;
	}
	if( yslx_checkzxbf=='1'||yslx_checkzxbf=='2'||yslx_checkzxbf=='7'||yslx_checkzxbf=='8' )
	{
/*		myapi_ReadString(message,tmp_str,39,48);
		tmp_str[10]='\0';
		count_DYZS=atol(tmp_str);
		myapi_ReadString(message,tmp_str,49,58);
		tmp_str[10]='\0';
		count_DYZS= count_DYZS+atol(tmp_str);
*/
		EXEC SQL SELECT dyzs+lszs INTO :count_DY_LS from t_jszdyssm WHERE sjbh=:fssbh AND jsxh=:lg_Key;
		EXEC SQL SELECT sum(yffs) INTO :count_YSZFS FROM t_jszdyssj WHERE sjbh=:fssbh AND jsxh=:lg_Key;
	}
	else if( yslx_checkzxbf=='3'||yslx_checkzxbf=='4'||yslx_checkzxbf=='5'||yslx_checkzxbf=='6' )
	{
/*		myapi_ReadString(message,tmp_str,45,54);
		tmp_str[10]='\0';
		count_DYZS=atol(tmp_str);
		myapi_ReadString(message,tmp_str,65,74);
		tmp_str[10]='\0';
		count_DYZS= count_DYZS + atol(tmp_str);
*/
		EXEC SQL SELECT dyzs+lszs INTO :count_DY_LS from t_jspdyssj WHERE sjbh=:fssbh AND jsxh=:lg_Key;
		EXEC SQL SELECT sum(zjfs) INTO :count_YSZFS FROM t_jspdyssj WHERE sjbh=:fssbh AND jsxh=:lg_Key;
	}

	if( (yslx_checkzxbf=='1' || yslx_checkzxbf=='7') && (count_zfj_zz!=count_yssj_zz||count_YSZFS!=count_DY_LS) )
	{
		sprintf(tmp_str,"found zxbf,cannot convert it into file,please check it,sjbh is %s,jsxh is %ld",fssbh,lg_Key);
		ProcessError(LOG_ERROR,"PCS_RCV_YS: ",tmp_str);
		EXEC SQL UPDATE T_JSRZ SET sjzt=:jsys_zxbf WHERE jsxh=:lg_Key AND sjbh=:fssbh;
	}
	else if( count_YSZFS!=count_DY_LS )
 	{
		sprintf(tmp_str,"found zxbf,cannot convert it into file,please check it,sjbh is %s,jsxh is %ld",fssbh,lg_Key);
		ProcessError(LOG_ERROR,"PCS_RCV_YS: ",tmp_str);
		EXEC SQL UPDATE T_JSRZ SET sjzt=:jsys_zxbf WHERE jsxh=:lg_Key AND sjbh=:fssbh;
	}
     	

	flag=Snd_HZ_MQ( lg_Key,fssbh,jssbh);

	if( flag!=0 )

	{

		ProcessError(LOG_ERROR,"PCS_RCV_YS: error use function ", "Snd_HZ_MQ");

		return(-1);

	}

	

	return(0);

}



void freect()

{ 

  if ( buf != NULL )

  free( buf) ;

  if ( fp!=NULL )
	fclose(fp);
  if ( fp_JJGH!=NULL )
	fclose(fp_JJGH);
  MQBKClear();

  EXEC SQL ROLLBACK WORK RELEASE;

  exit(0);
}


/** if receive ys cannot put into database by snml, then put the msg into a file **/

int checkerr_sndgh(char *errmsg,char dsnbz)
{
	char JJGH_FILE[]="/usr/bkfx/data/rcv/backup/JJGH";
	char THE_GENERAL_STR[]="XXXX3\nGH    JJ.999\n                        JJGH\n    The following ys we do not received!\n    Please check if it is for our FBKJ, \nwe cann't found its bkdh in our t_snml\n";
	char bkdh[8],BSBH[3],jssbh[3],str_yxnf;
	int check_exist,yxnf;
	
	EXEC SQL WHENEVER SQLERROR DO sqlerror();
	EXEC SQL SELECT bsbh INTO :BSBH FROM t_bsbh ;
	myapi_ReadString(errmsg,jssbh,12,13);
	THE_GENERAL_STR[8]=BSBH[0];
	THE_GENERAL_STR[9]=BSBH[1];
	THE_GENERAL_STR[10]=jssbh[0];
	THE_GENERAL_STR[11]=jssbh[1];
	check_exist=0;
	EXEC SQL SELECT to_char(sysdate,'yyyy') INTO :str_yxnf FROM sys.dual;
	yxnf=atoi(str_yxnf);
	if( (yxnf%2==0) && dsnbz=='1' )
		yxnf=yxnf+1;
	else if ( (yxnf%2==1) && (dsnbz=='0') )
		yxnf=yxnf+1;

	myapi_ReadString(errmsg,bkdh,14,20);
	trim(bkdh);
	EXEC SQL SELECT COUNT(*) INTO :check_exist FROM T_SNML WHERE bkdh=:bkdh AND yxnf=:yxnf;
	if( ERROR!=0 )
	{
		ERROR=0;
		ProcessError(LOG_ERROR,"PCS_RCV_YS: sqlerror when use checkerr_sndgh!" ,END);
		return(-1);
	}
	if( check_exist>0 )
		return(-1);
	fp_JJGH=fopen("/usr/bkfx/data/rcv/backup/JJGH","r");
	if( fp_JJGH!=NULL )
	{
		fclose(fp_JJGH);
		fp_JJGH=fopen(JJGH_FILE,"a");
		if( fp_JJGH==NULL )
		{
			ProcessError(LOG_ERROR,"PCS_RCV_YS: cannot open file JJGH, please inform the sender!",END);
			return(-1);
		}
	}
	else
	{
		fp_JJGH=fopen(JJGH_FILE,"w");
		if( fp_JJGH==NULL )
		{
			ProcessError(LOG_ERROR,"PCS_RCV_YS: cannot open file JJGH, please inform the sender!",END);
			return(-1);
		}
		fputs(THE_GENERAL_STR,fp_JJGH);
	}
	fputs(errmsg,fp_JJGH);
	fputs("\n",fp_JJGH);
	fclose(fp_JJGH);
	return(0);
}

/** general the JJGH netwk file in the appointed path **/

void putitto_netwk()
{
	char NETWK_FILE[]="/usr/bkfx/data/rcv/wk/netwk";
	char JJGH_FILE[]="/usr/bkfx/data/rcv/backup/JJGH";
	char tmp_str[200];

	fp_JJGH=fopen(JJGH_FILE,"r");
	if( fp_JJGH==NULL )
		return;
	else
		fclose(fp_JJGH);

	sprintf(tmp_str,"echo %s >> %s","XXXX0",JJGH_FILE);
	system(tmp_str);
	sleep(1);

	sprintf(tmp_str,"cat %s >> %s",JJGH_FILE,NETWK_FILE);
	system(tmp_str);

	sprintf(tmp_str,"rm %s",JJGH_FILE);
	system(tmp_str);
	
}

⌨️ 快捷键说明

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