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

📄 itfc.c

📁 在不同的进程之间实现信号量的传递,从而触发特定的事件
💻 C
字号:
 /*   *	%W% %G% * *	人行营业部同城票据处理系统 * *	Copyright (C) 2000 杭州信雅达系统工程有限责任公司 * *	前台主程序 main() *	作者: *	日期: */#include <stdio.h>#include <stdlib.h>#include <signal.h>#include <curses.h>#include <errno.h>#include "MessageBox.h"#include "mainmenu.h"#include "macro.h"#include "public.h"#include "s_exchgnote.h"#include "s_query.h"#include "global.h"#include "pubutil.h"#include "pltutil.h"/* 全局变量声明 */char SYS_Title[81];			/* 系统名称 */ BOOL SYS_State;				/* 系统状态 TRUE--运行 FALSE--关闭 */char TermInfo[11];			/* 终端号 */ char ITFCINI[200];struct key_info Key_Info;int acctcheckflag;				/*帐户检查标置*/int gkbmcheckflag;			/*国库编码检查标置*/int debug;			char SYS_Hostname[21];		/* 文件传送主机名称 */long SYS_ServerNum;			/* 中心机器号 */long SYS_ClientNum;			/* 本机机器号 */char SYS_CliNum[9];			/* 本机机器号 */char SYS_NetAddr[16];		/* 网络IP地址 */char SYS_HostAddr[16];		/* 主机IP地址 */long FileTransPort;			/* 传输端口*/long SYS_Dseq = 0;			/* 数据包号 */long SYS_Dtype;				/* 同城数据类型 */char SYS_OBankNo[7];		/* 开户行号 */char SYS_WorkBankNo[7];		/* 行号 */char CityName[21];			/* 城市名 */char SYS_Date[9];			/* 当前日期 */char SYS_Operator[5];			/* 当前操作员代码 */char SYS_OperName[9];			/* 当前操作员姓名 */char SYS_OperLevel;			/* 当前操作员级别 */char SYS_OperPermit[16];		/* 当前操作员限额*/char BegPrtCtrlStr[200];char EndPrtCtrlStr[200];char PromptStr[200];			/*此变量在libintfc.a中使用*/char PromptOperStr[200];// Wujicheng 20020610 addchar zamount[16];char zcreditacct[33];char zcreditname[81];char zdebitacct[33];char zdebitname[81];char znoteno[21];char Withholdflag[2];                 /*截流标志,0-不截流,1-截流*/char NoteType[3];char TradeType[2];int authflag = 0;int RESULT = 0;				/*批量处理结果*/long	WaitTime = 0;			/*等待键盘输入时间*/long	wdelay = 0;			/*终端打印延时*/long	printtype;			/*打印类型 1-主机打印;2-终端打印*/struct pub_exchgnote_str cps_str;struct pub_exchgnote_str s_ccs;struct s_query_str cxcf_str;void InitApp(){	char debug_str[64];	char servernum_str[64];	char clientnum_str[64];	char waittime_str[64];	char obankno_str[64];	char dtype_str[64];	char eisdtype_str[64];	char filetransport_str[64];	char profile[PATH_MAX];    	sprintf( profile, "%s/etc/client.ini", getenv("HOME"), CLI_PROFILE );    	if (GetProfileString( profile, "NODE INFO", "AppName", SYS_Title ))            strcpy(SYS_Title,"苏州同城票据处理 网点子系统 2.0");     	if (GetProfileString( profile, "NODE INFO", "CliNum", SYS_CliNum ))            strcpy(SYS_CliNum,"100");        if (GetProfileString(profile, "NODE INFO", "CityName", CityName))            strcpy(CityName,"苏州");	sprintf(TermInfo,"%s",strrchr((char *)ttyname(1), '/')+1);	sprintf(BegPrtCtrlStr,"%c{",ESC);	sprintf(EndPrtCtrlStr,"%c}",ESC);}void intrade_view(int sig){        WINDOW *Box;	FILE *fp;		char tmp[256],filename[64];        char buff[40],tmp2[40];	int i = 0;        long a;	sprintf(filename,"%s/tmp/in_%08d.dat\0",getenv("HOME"),getpid());	trim_all(filename);	signal(SIGUSR1,SIG_IGN);	if((fp = fopen(filename, "r")) == NULL)		return;		fgets(tmp, 255, fp);	tmp[255] = 0;	trim_all(tmp);        for(i = 0;i < strlen(tmp) - 2 ; i++)        {	    if(strlen(tmp) < 2 )		break;            if(strncmp(tmp+i, "密", 2) == 0)            {                 strcpy(buff, tmp+i+2);                 strcpy(tmp2, (char *) strtok(buff, " "));                 sprintf(buff,"未复核提入支付密码票据:%s笔",tmp2);                                  move(9,15);                 wprintw(stdscr,"%50s"," ");                 move(10,15);                 wprintw(stdscr,"%50s"," ");                 move(11,15);                 wprintw(stdscr,"%50s"," ");                 move(12,15);                 wprintw(stdscr,"%50s"," ");                 move(13,15);                 wprintw(stdscr,"%50s"," ");                 standout();                 refresh();                 move(10,18);                 wprintw(stdscr,"%s","┏━━━━━━━━━━━━━━━━━━━┓");                 move(11,18);                 wprintw(stdscr,"%s","┃ ");                 move(11,24);                 wprintw(stdscr,"%s",buff);                 move(11,58);                 wprintw(stdscr,"%s","┃ ");                 move(12,18);                 wprintw(stdscr,"%s","┗━━━━━━━━━━━━━━━━━━━┛");                 standend();                 refresh();                 noecho();                 do{                        a=getch();                 }while ( (a!=ENTER)&&(a!=KEY_ENTER));            }        }         	PromptMsg(tmp);			fclose(fp);	signal(SIGUSR1,intrade_view);	return;}main(argc, argv)int argc;char *argv[];{	        if (getenv("FILES_DIR")==NULL)        {            printf("请设置环境变量FILES_DIR!\n");            exit(-1);	}	printtype=2;	strcpy(CityName,"苏州");	InitApp();        if( putenv( "ISCOUNTER=Y" ) != 0 )	{	    SDKerrlog( CLILOG, "[%s|%d] putenv() error! %s", __FILE__, __LINE__,	        strerror(errno) );            exit( -1 );	}	signal( SIGUSR1, intrade_view );	strcpy(PromptOperStr,"当前没有操作员签到");	strcpy(SYS_Operator,"");	strcpy(SYS_WorkBankNo,"");	SYS_State=FALSE;	AppRun();}

⌨️ 快捷键说明

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