📄 bank_stat_moni.c
字号:
/*=============================================================
功能: 初始化用于监控系统状态的信号灯,取信号灯,P,V操作
作者:
王永忠:2001/03/29:规范程序设计
周国祥:2001/05/12 从mytools/bank_stat.c中分离而生成本文件
===============================================================*/
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include "shmsys.h"
#include "mytools.h"
int bank_stat_sem;
/*---------------------------------------------
功能:
初始化用于监控系统状态的信号灯
ENTRY:
RETURN: 0 SUCC
-1 FAIL
-----------------------------------------------*/
int init_bank_stat_moni ()
{
int i;
if ((bank_stat_sem = creat_sem(SHMFILE, BANK_STAT_SHM, 1)) < 0 ){
errcall ( ERROR , "ERR create bank stat monitor sem !" );
return -1;
}
semctl ( bank_stat_sem , 0 , SETVAL , 1 );
return 0;
}
/*---------------------------------------------
功能:
取用于监控系统状态的信号灯
ENTRY:
RETURN: 0 SUCC
-1 FAIL
-----------------------------------------------*/
int get_bank_stat_moni ()
{
int i;
if ( ( bank_stat_sem = get_sem ( SHMFILE , BANK_STAT_SHM , 1 )) < 0 ) {
errcall ( ERROR , "ERR get sem !" );
return -1;
}
return 0;
}
/*---------------------------------------------
功能:
删除用于监控系统状态的信号灯
ENTRY:
RETURN: 0 SUCC
-1 FAIL
-----------------------------------------------*/
int del_bank_stat_moni ()
{
int i;
if (rm_sem( SHMFILE, BANK_STAT_SHM) < 0 ) {
errcall ( ERROR , "ERR rm BANK_STAT_SHM sem !" );
return -1;
}
return 0;
}
/*---------------------------------------------
功能:
P操作
ENTRY:
RETURN:
-----------------------------------------------*/
int wait_moni ()
{
int i;
sem_P ( bank_stat_sem , 0 , 0 );
}
/*---------------------------------------------
功能:
V操作
ENTRY:
RETURN:
-----------------------------------------------*/
int wackup_moni ()
{
semctl ( bank_stat_sem , 0 , SETVAL , 1 );
}
/*
* 唤醒网络监控处理
*/
active_netmoni()
{
/*
* 联行状态监控
*/
get_bank_stat_moni ();
if ( getipc () < 0 ) {
errcall ( ERROR , "Unable get shm1 !" );
return -7;
}
/*
* 告诉网络监控进程需要重新装载状态信息
*/
set_reload_num ();
/*
* 唤醒监控进程
*/
wackup_moni ();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -