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

📄 command_func.c

📁 在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便
💻 C
字号:
#include <stdio.h>
#include <curses.h>
#include <varargs.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/timeb.h>
#include <fcntl.h>
#include <time.h>
#include <errno.h>

#include "all.h"
#include "tool.h"
#include "macro_def.h"

struct	termio stdin_term;
struct	termio stdout_term;

int ImportData()
{
	WINDOW *my_win;
	char screen[128];
	char cmd_buf[256], cmd[128], param[128];
	char	import_date[9];
	char	buffer[128], buf[128], filename[128];
	FILE	*fp;
	int 	ret,iRet;

	sprintf(screen, "/tmp/.ImportData.%d", getpid());
	scr_dump(screen);

	DispBelow("数据导入");
	clear_wline(stdscr, LINES-1);
	my_win = newwin(18, 80, 3, 0);
	mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	wrefresh(my_win);

	getdatef(import_date, "");
	mvwprintw(my_win, 2, 4, "请输入数据导出日期: [%s]", import_date);
	ret = in_item(my_win, "", 2, 25, import_date, 8, NULL, NULL, 0, 0);
	if (ret != ENTER) {
		delwin(my_win);
		scr_restore(screen);
		unlink(screen);
		return(-1);
	}
	

	db_close();

	ioctl(0, TCGETA, &stdin_term);
	ioctl(1, TCGETA, &stdout_term);

	system("clear;stty sane");

	signal(SIGINT, SIG_DFL);
	signal(SIGINT, SIG_IGN);


	memset ( buffer, 0, 128 );
	sprintf( buffer, "m_import %s", import_date );
	iRet = system( buffer );
	if ( iRet  < 0 ){
		errcall( ERROR, "execute cmd [%s] fail !!!", buffer );
		goto End;
	}

	memset ( buffer, 0, 128 );
	sprintf( buffer, "preproc %s", import_date );
	iRet = system( buffer );
	if ( iRet < 0 ){
		errcall( ERROR, "execute cmd [%s] fail  !!!", buffer );
		goto End;
	}

End:
	ioctl(0, TCSETAW, &stdin_term);
	ioctl(1, TCSETAW, &stdout_term);

	if (db_open() == -1) {
		errcall(ERROR, "Error Open Database!\n");
		exit(-1);
	}
	scr_restore(screen);
	unlink(screen);
	touchwin(curscr);
	wrefresh(curscr);
	if ( iRet < 0 )  return( -1 );
	return(0);
}

int AfterProc()
{
	WINDOW *my_win;
	char screen[128];
	char cmd_buf[256], cmd[128], param[128];
	char	import_date[9];
	char	buffer[128], buf[128], filename[128];
	FILE	*fp;
	int 	ret,iRet;

	sprintf(screen, "/tmp/.AfterProc.%d", getpid());
	scr_dump(screen);

	DispBelow("事后处理");
	clear_wline(stdscr, LINES-1);
	my_win = newwin(18, 80, 3, 0);
	mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	wrefresh(my_win);

	db_close();

	ioctl(0, TCGETA, &stdin_term);
	ioctl(1, TCGETA, &stdout_term);

	system("clear;stty sane");

	signal(SIGINT, SIG_DFL);
	signal(SIGINT, SIG_IGN);


	memset ( buffer, 0, 128 );
	strcpy( buffer, "check_match" );
	iRet = system( buffer );
	if ( iRet < 0 ){
		errcall( ERROR, "execute cmd [%s] fail !!!", buffer );
		goto End;
	}
	
	memset ( buffer, 0, 128 );
	strcpy( buffer, "pageat" );
	iRet = system( buffer );
	if ( iRet < 0 ){
		errcall( ERROR, "execute cmd [%s] fail  !!!", buffer );
		goto End;
	}

	memset ( buffer, 0, 128 );
	strcpy( buffer, "transfer" );
	iRet = system( buffer );
	if ( iRet < 0 ){
		errcall( ERROR, "execute cmd [%s] fail  !!!", buffer );
		goto End;
	}

End:
	ioctl(0, TCSETAW, &stdin_term);
	ioctl(1, TCSETAW, &stdout_term);

	if (db_open() == -1) {
		errcall(ERROR, "Error Open Database!\n");
		exit(-1);
	}
	scr_restore(screen);
	unlink(screen);
	touchwin(curscr);
	wrefresh(curscr);
	if( iRet < 0 ) return( -1 );
	return(0);
}
int Restore()
{
	WINDOW *my_win;
	char screen[128];
	char cmd_buf[256], cmd[128], param[128];
	char	restore_date[9];
	char	buffer[128], buf[64], filename[128];
	FILE	*fp;
	int 	ret, iRet;

	sprintf(screen, "/tmp/.Restore.%d", getpid());
	scr_dump(screen);

	DispBelow("数据恢复");
	clear_wline(stdscr, LINES-1);
	my_win = newwin(18, 80, 3, 0);
	mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	wrefresh(my_win);

	getdatef(restore_date, "");
	mvwprintw(my_win, 2, 4, "请数据恢复日期: [%s]", restore_date);
	ret = in_item(my_win, "", 2, 21, restore_date, 8, NULL, NULL, 0, 0);
	if (ret != ENTER) {
		delwin(my_win);
		scr_restore(screen);
		unlink(screen);
		return(-1);
	}
	

	db_close();

	ioctl(0, TCGETA, &stdin_term);
	ioctl(1, TCGETA, &stdout_term);

	system("clear;stty sane");

	signal(SIGINT, SIG_DFL);
	signal(SIGINT, SIG_IGN);

	memset ( buffer, 0, 128 );
	sprintf( buffer, "m_restore %s", restore_date );
	iRet = system( buffer );
	if ( iRet < 0 ){
		errcall( ERROR, "execute cmd [%s] fail !!!", buffer );
		goto End;
	}

End:
	ioctl(0, TCSETAW, &stdin_term);
	ioctl(1, TCSETAW, &stdout_term);

	if (db_open() == -1) {
		errcall(ERROR, "Error Open Database!\n");
		exit(-1);
	}
	scr_restore(screen);
	unlink(screen);
	touchwin(curscr);
	wrefresh(curscr);
	if ( iRet < 0 ) return( -1 );
	return(0);
}

⌨️ 快捷键说明

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