亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? simumain.c

?? 仿真測試接口程序。根據電總《用戶接入網管理功能與管理接口技術規范》之《與112集中受理系統接口規范》
?? C
字號:
#define WIN32_OTHER   1#include "simu112.h"#include <string.h>#include <errno.h>#ifdef WIN32_ENV#include <io.h>#endif#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <signal.h>#include <fcntl.h>#include <sys/stat.h>#include <stdarg.h>#ifndef WIN32_ENV#include <unistd.h>#include <string.h>#ifndef HPUX#include <sys/syslog.h>#endif#include <sys/types.h>#include <sys/wait.h>#include <sys/param.h>#endifextern DEVICEHEAD *device_head;extern COMPRULEDATA comp_rule_data[MAX_SWITCH + 1] = {	{"UNKNOWN", 0, NULL, NULL},	{"S1240E", 1, NULL, NULL},	{"DMS100", 2, NULL, NULL},	{"DMS10", 3, NULL, NULL},	{"SP30", 4, NULL, NULL},	{"5ESS", 5, 0, 0},	{"AXE10", 6, 0, 0},	{"NEAX61", 7, NULL, NULL},	{"SP30CN", 8, NULL, NULL},	{"CC08", 9, NULL, NULL},	{"HW_AN", 10, NULL, NULL},	{"ZX_AN", 11, NULL, NULL},	{"UT_AN", 12, NULL, NULL},	{"BE_AN", 13, NULL, NULL},	{"XMZ_AN", 14, NULL, NULL},	{"EWSD", 15, NULL, NULL},	{"S1240J", 16, NULL, NULL},	{"F150", 17, NULL, NULL},	{"FST_AN", 18, NULL, NULL},	{"LX_AN", 19, NULL, NULL},	{"NEAX_RSU", 20, NULL, NULL},	{"NEC_AN", 21, NULL, NULL},	{"EWSD_OMT", 22, NULL, NULL},	{"EWSD_OMT13", 23, NULL, NULL},	{"DEMO", 24, NULL, NULL},	{"Q3_AN", 25, NULL, NULL},	{"\0", 0, NULL, NULL}};SOCKETSTRUCT so[MAX_FD];char LIC_USERNAME[61];int LIC_DRIVERNUMBER;typedef struct{	FILE *Logfp;	char LogFile[20];}	THISAPP;THISAPP ThisApp;sig_atomic_t Child_died = 0;void fQuitAll(int signo);static void sig_child_died(int sig);void handle_child_died(void);void make_daemon();int fBackupLog(void);int fCloseLog() ;int fLogInfo(char *fmt, ...);int fOpenLog();extern int fGetLicInfo();/*************************************************/int main(int argc, char *argv[]){	int simdrv_fd;	int ret_code;	struct tm *ctime;	time_t lt;	FILE *lp;#ifdef WIN32_OTHER	int ErrorLevel = (-1);				/* error level for logging */	pid_t p;	struct sigaction action;	int i, j;    ThisApp.Logfp=NULL;  strcpy(ThisApp.LogFile,"simu112.log");  fOpenLog();  fLogInfo(">>> Start simu112 <<<\n");  	if (!fGetLicInfo())		fQuitAll(0);	if (argc == 1)	{		printf("\n  STSC -- Simulate Test System Control Server version %s\n", LIC_VERSION);		printf("          Copyright(c) by RELTEC Comm/Tech Ltd. Corp. 2000.07 \n");		printf("\n    Licensed to: %s\n", LIC_USERNAME);		printf("    Maximum drivers is: %d\n\n", LIC_DRIVERNUMBER);		fQuitAll(0);	}  fCloseLog();	make_daemon();  fOpenLog();	sigemptyset(&action.sa_mask);	action.sa_flags = 0;	action.sa_handler = SIG_IGN;	sigaction(SIGPIPE, &action, 0);	action.sa_handler = fQuitAll;	sigaction(SIGUSR1, &action, NULL);	sigaction(SIGTERM, &action, NULL);	sigaction(SIGKILL, &action, NULL);	action.sa_flags = 0;	action.sa_handler = SIG_IGN;	sigaction(SIGPWR, &action, NULL);	action.sa_handler = sig_child_died;	sigaction(SIGCHLD, &action, NULL);#endif#ifdef WIN32_ENV	int err;	WORD wVersionRequired;	WSADATA wsaData;	wVersionRequired = MAKEWORD(1, 1);	err = WSAStartup(wVersionRequired, &wsaData);	if (err != 0)		fQuitAll(0);#endif	if (argc < 3)		fQuitAll(0);	ret_code = loadSetTable();	if (ret_code < 0)		fQuitAll(0);	simdrv_fd = startSIMsrv(argv[1], atoi(argv[2]));	attachSocket(simdrv_fd, attachClient, IS_HIMSELF);	schedProcess();	freeSetTable();#ifdef WIN32_ENV	WSACleanup();	closesocket(simdrv_fd);#else	close(simdrv_fd);#endif	fQuitAll(0);}#ifdef WIN32_OTHER/*:****************************************************************************   Function Name: sig_child_died   Narrative: Sets the Child_died flag when a child dies.   Param: int sig - signal passed to routine   Return: none   ***************************************************************************** */static void sig_child_died(int sig){	sig = sig;										/* resolve lint warnings */	Child_died = 1;}																/* end sig_child_died() *//*:****************************************************************************   Function Name: handle_child_died   Narrative: A the point of entry, all we know is that a child or children   have died. We need to do the following:   1.) determine which child(ren) died by testing the status   of every fd opened for a child.   2.) for each fd of a dead child, close the fd, update   fd's in the appropriate tables, and set up a timer   event to respawn the child at 1 minute intervals   until the child is up and running.   Param: none   Return: none   ***************************************************************************** */void make_daemon(){	int i;	long open_max;	pid_t p;	/* turn off all file permission masking */	umask(0);	/* move working directory to one which won't go away */	/* the purpose of this is to move to a place where any */	/* file system can be un-mounted with us stopping this */	/* for this project we are using files in the local dir */	/* so this is not implemented                          *//*    chdir("/"); */	/* if we are to disassociate from parent and disconnect from    */	/* terminal then do it                                          */	/* This was not implemented in TRM                              */	/* we will use setsid to disassociate as this in the POSIX form */	/* setsid is similar to System V setpgrp and BSD 4.3 setpgrp  */	if ((p = fork()) < 0)	{		fprintf(stderr, "\nDaemon cannot fork first child\n");		exit(1);	}	else	{		if (p > 0)			exit(0);									/* parent */	}	setsid();	/* insure futrue opens will not allocate controlling terminals */	sigset(SIGHUP, SIG_IGN);	if ((p = fork()) < 0)	{		fprintf(stderr, "\nDaemon cannot fork second child\n");		exit(1);	}	else	{		if (p > 0)			exit(0);									/* parent */	}	/* close any and all file descriptor that may be open */	/* determine current maximum with POSIX routine       */	open_max = sysconf(_SC_OPEN_MAX);	/* We we do not get an answer choose something reasonable */	if (open_max <= 0)		open_max = 64;	for (i = 0; i < (int) open_max; i++)		close(i);	/* now open fd 0, 1, 2 in case somebody tries to write to it */	i = open("/dev/null", O_RDWR);	dup(i);	dup(i);/*#ifdef IGNORE_ALL_SIG */	/* now ignore all signals */	for (i = 0; i < NSIG; i++)		signal(i, SIG_IGN);/*#endif */}#endifint fOpenLog(){	if(ThisApp.Logfp!=NULL)		return 0;	ThisApp.Logfp = fopen(ThisApp.LogFile, "a+");	if(ThisApp.Logfp==NULL)		return 0;	return 1;}/*******************************************  1=Close Ok. 0=Already Close******************************************/int fCloseLog() {	if(ThisApp.Logfp==NULL)		return 0;	fclose(ThisApp.Logfp);	ThisApp.Logfp=NULL;	return 1;}int fLogInfo(char *fmt, ...){	char *str;	va_list ptr;	time_t t;	time(&t);		fBackupLog();	if (ThisApp.Logfp!= NULL)	{		va_start(ptr, fmt);		fprintf(ThisApp.Logfp, "\n%s",ctime(&t));		vfprintf(ThisApp.Logfp, fmt, ptr);		va_end(ptr);		fflush(ThisApp.Logfp);		return 1;	}	return 0;}int fBackupLog(void){	struct stat statbuf;	char *src,*dst,*ptr,BackupFile[20];	FILE *stream;	if(ThisApp.Logfp==NULL)   return 0;	fstat(fileno(ThisApp.Logfp), &statbuf);	if(statbuf.st_size<1000000L) return 0;	sprintf(BackupFile,"%s.bak",ThisApp.LogFile);	remove(BackupFile);	fCloseLog();	rename(ThisApp.LogFile,BackupFile);	fOpenLog();	return 1;}void fQuitAll(int signo){	fLogInfo(">>> End simu112 <<<\n\n");	fCloseLog();	exit(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
水野朝阳av一区二区三区| 99精品久久只有精品| 国产高清在线精品| 91国偷自产一区二区使用方法| 欧美日韩精品二区第二页| 国产欧美日韩不卡免费| 日本麻豆一区二区三区视频| 9色porny自拍视频一区二区| 久久新电视剧免费观看| 午夜欧美一区二区三区在线播放| 成人自拍视频在线观看| 欧美精彩视频一区二区三区| 麻豆精品一区二区三区| 欧美伊人精品成人久久综合97| 国产清纯在线一区二区www| 日本不卡不码高清免费观看| 色婷婷av久久久久久久| 中文字幕精品在线不卡| 国产又黄又大久久| 精品国产一区二区亚洲人成毛片 | 欧美日韩国产影片| 亚洲欧洲av一区二区三区久久| 精品一区二区三区欧美| 在线播放/欧美激情| 亚洲综合丝袜美腿| 97se亚洲国产综合在线| 亚洲国产高清在线观看视频| 国产 欧美在线| 久久综合网色—综合色88| 毛片av一区二区| 91精品免费观看| 日韩不卡在线观看日韩不卡视频| 欧美色图12p| 亚洲成a人片在线不卡一二三区| 91精品91久久久中77777| 一区二区高清在线| 欧美视频中文一区二区三区在线观看| 亚洲天堂网中文字| 色先锋资源久久综合| 亚洲欧美日韩国产手机在线| 91麻豆蜜桃一区二区三区| 亚洲乱码日产精品bd| 欧美综合天天夜夜久久| 五月天中文字幕一区二区| 在线成人av网站| 蜜臀a∨国产成人精品| 欧美mv和日韩mv国产网站| 黄色成人免费在线| 国产免费成人在线视频| 成人小视频在线观看| 中文字幕色av一区二区三区| 色婷婷激情久久| 丝袜美腿成人在线| 26uuu国产电影一区二区| 国产成人在线看| 亚洲精品免费看| 91精品国产综合久久久蜜臀粉嫩| 久久狠狠亚洲综合| 亚洲国产精品成人综合色在线婷婷| www.欧美亚洲| 丝袜国产日韩另类美女| 久久久久99精品国产片| 99视频精品在线| 日日骚欧美日韩| 久久青草欧美一区二区三区| 欧美精品久久久久久久多人混战| 蜜臀av性久久久久蜜臀av麻豆| 国产亚洲1区2区3区| 91视频xxxx| 老汉av免费一区二区三区| 国产精品国产三级国产| 欧美另类z0zxhd电影| 国产精品一区二区三区乱码| 亚洲黄色录像片| 久久看人人爽人人| 欧美亚洲图片小说| 国产风韵犹存在线视精品| 亚洲一级二级三级在线免费观看| 日韩一区二区三区av| 99热99精品| 精品制服美女久久| 亚洲一线二线三线视频| 国产亚洲一本大道中文在线| 欧美中文字幕久久 | 日韩成人精品在线| 国产精品视频线看| 欧美成人乱码一区二区三区| 色av成人天堂桃色av| 国产成人丝袜美腿| 免费观看日韩电影| 一区二区三区在线播放| 久久久久久久久97黄色工厂| 欧美精品v国产精品v日韩精品| 成人av在线观| 国产麻豆一精品一av一免费| 日韩av午夜在线观看| 亚洲黄色av一区| 亚洲三级久久久| 亚洲国产精品激情在线观看| 精品久久久久久久久久久久包黑料| 欧美性猛片aaaaaaa做受| 不卡一区二区在线| 国产精华液一区二区三区| 奇米精品一区二区三区在线观看 | 久久―日本道色综合久久| 在线播放/欧美激情| 欧美日韩亚洲国产综合| 在线一区二区三区做爰视频网站| 成人午夜激情视频| 国产成人福利片| 国产精品亚洲视频| 韩国成人精品a∨在线观看| 久久精品国产亚洲a| 奇米一区二区三区| 91免费在线看| www.亚洲人| 91首页免费视频| 一本大道av一区二区在线播放| 成人av资源下载| 91日韩在线专区| 欧美三电影在线| 制服视频三区第一页精品| 欧美高清视频www夜色资源网| 777午夜精品免费视频| 在线不卡a资源高清| 欧美一级黄色录像| 精品国产精品网麻豆系列| 久久综合av免费| 欧美激情在线一区二区三区| 中文字幕一区二区三区色视频| 中文字幕一区二区三中文字幕 | 日韩精品一区在线| 精品国产乱码久久久久久久久| 久久久不卡影院| 亚洲同性同志一二三专区| 亚洲乱码精品一二三四区日韩在线| 一区二区三区高清| 偷拍一区二区三区| 韩日av一区二区| 成人性生交大合| 欧美日韩综合色| 亚洲精品在线观看视频| 亚洲国产精品二十页| 一区二区三区中文在线| 午夜精品久久久久久久99樱桃| 男女男精品网站| 成人一级片在线观看| 91黄色激情网站| 欧美精品一区二| 亚洲日本电影在线| 麻豆成人91精品二区三区| 成人精品视频一区二区三区尤物| 色香蕉成人二区免费| 欧美不卡123| 中文字幕在线观看一区二区| 婷婷夜色潮精品综合在线| 国产精品一区二区三区99| 91国产丝袜在线播放| 欧美va亚洲va国产综合| 一区二区三区在线播| 韩国v欧美v日本v亚洲v| 色婷婷激情综合| 国产日韩欧美亚洲| 日韩经典一区二区| 99r精品视频| 久久久久国产精品麻豆| 天天av天天翘天天综合网 | 三级在线观看一区二区| 成人精品免费网站| 日韩免费福利电影在线观看| 亚洲黄色性网站| 国产99久久久精品| 日韩色在线观看| 亚洲风情在线资源站| 不卡的av在线| 久久久精品国产免费观看同学| 婷婷激情综合网| 一本久久综合亚洲鲁鲁五月天| 久久久一区二区三区捆绑**| 日日夜夜精品视频天天综合网| 一本大道久久a久久综合| 国产日韩精品一区二区浪潮av| 蜜桃av一区二区三区电影| 欧美性受xxxx| 亚洲男人都懂的| youjizz久久| 国产精品电影院| 国产精品一卡二卡| 久久综合久久综合久久综合| 日韩成人午夜精品| 在线不卡免费av| 日本午夜精品一区二区三区电影| 日本黄色一区二区| 成人欧美一区二区三区1314| 高清不卡一二三区| 日韩精品一区二区三区三区免费| 日韩在线卡一卡二| 91精品国产综合久久福利| 香蕉加勒比综合久久| 欧美人与z0zoxxxx视频|