?? msignal.c
字號:
#include "version.h"#include <signal.h>#include <errno.h>#include <unistd.h>#include <stdio.h>#include "buf.h"#include "net.h"#include "char.h"#include "item.h"#include "object.h"#include "configfile.h"#include "lssproto_serv.h"#include "saacproto_cli.h"#include "log.h"#include "petmail.h"/*------------------------------------------------------------ * lsprotocol 及伐□平件弘 毛荸 允月楮醒毛裟少[ * 婁醒}忒曰襖 * 卅仄 ------------------------------------------------------------*/static void endlsprotocol( void ){ lssproto_CleanupServer(); saacproto_CleanupClient();}/*------------------------------------------------------------ * 允屯化及忡繡仄卅仃木壬卅日卅中犯□正毛母件皿允月楮醒 * 公木冗木及乒斥亙□伙及楮醒毛裟少及心[ * 婁醒}忒曰襖 * 卅仄 ------------------------------------------------------------*/static void allDataDump( void ){ closeAllLogFile();#ifndef _SIMPLIFY_ITEMSTRING storeObjects( getStoredir() ); storePetmail();#endif storeCharaData();}/*------------------------------------------------------------ * 皿夫弘仿丞及蔽 質 及兇戶卞裟太請今木月[ * 婁醒}忒曰襖 * 卅仄 ------------------------------------------------------------*/void shutdownProgram( void ){ close( acfd ); close( bindedfd ); endlsprotocol(); endConnect(); memEnd();}char *DebugFunctionName = NULL;int DebugPoint = 0;void sigshutdown( int number ){#if USE_MTIO { void MTIO_join(void); MTIO_join(); }#endif print( "\n標準信息: %d\n" , number ); if( number == 0 )print( "\nGMSV正常關閉\n" ); print( "\n調試點數(%d)\n", DebugPoint ); print( "\n最后函數 (%s)\n", DebugFunctionName ); remove( "gmsvlog.err2"); rename( "gmsvlog.err1", "gmsvlog.err2" ); rename( "gmsvlog.err", "gmsvlog.err1" ); rename( "gmsvlog", "gmsvlog.err" ); allDataDump(); signal( SIGINT , SIG_IGN ); signal( SIGQUIT, SIG_IGN ); signal( SIGKILL, SIG_IGN ); signal( SIGSEGV, SIG_IGN ); signal( SIGPIPE, SIG_IGN ); signal( SIGTERM, SIG_IGN ); shutdownProgram(); exit(number);}void signalset( void ){ // CoolFish: Test Signal 2001/10/26 print("\n開始獲取信號..\n"); print("SIGINT:%d\n", SIGINT); print("SIGQUIT:%d\n", SIGQUIT); print("SIGKILL:%d\n", SIGKILL); print("SIGSEGV:%d\n", SIGSEGV); print("SIGPIPE:%d\n", SIGPIPE); print("SIGTERM:%d\n", SIGTERM); signal( SIGINT , sigshutdown ); signal( SIGQUIT, sigshutdown ); signal( SIGKILL, sigshutdown ); signal( SIGSEGV, sigshutdown ); signal( SIGPIPE, SIG_IGN ); signal( SIGTERM, sigshutdown );}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -