📄 cj_semaphore.h
字号:
/*****************************************************************************/
/* */
/* 文件名:CJ_SEMAPHORE.C */
/* 创建人:王克锋 */
/* 日 期:2005-03-03 */
/* 描 述:文件处理函数组包含文件 */
/* */
/* */
/* 修改人: */
/* 日 期: */
/* 描 述: */
/* */
/*****************************************************************************/
#ifndef _CJ_SEMAPHORE_H_
#define _CJ_SEMAPHORE_H_
#include "cj_define.h"
#include "cj_datetime.h"
#include "cj_errmanager.h"
#define YCJ_MAX_SEM_SIZE
#ifdef __cplusplus
extern "C"
{
#endif
#include <limits.h>
#include <windows.h>
#define YCJSERCODE_TIMEOUT YCJRCODE
/*信号灯结构*/
typedef struct TCJSEStru
{
unsigned int semid; /*信号灯对象标识*/
unsigned int cnt; /*信号灯数量*/
int creator; /*创建者标志*/
char semname[32]; /*信号灯对象名称前缀*/
HANDLE *hsem; /*信号灯对象HANDLE数组指针*/
} TCJSEStru;
typedef TCJSEStru * PTCJSEStru;
/*创建信号灯对象*/
int CJSEInitial(PTCJSEStru v_ss, TCJUINT4 v_semid, TCJUINT4 v_cnt,
PTCJEMStack v_stack);
/*映射信号灯对象*/
int CJSEAttach(PTCJSEStru v_ss, TCJUINT4 v_semid, TCJUINT4 v_cnt,
PTCJEMStack v_stack);
/*指定信号灯执行"加" v_timeout 为超时时间*/
int CJSEInc(PTCJSEStru v_ss, TCJUINT4 v_sno, TCJUINT4 v_val,
TCJUINT4 v_timeout, PTCJEMStack v_stack);
/*指定信号灯执行"减" v_timeout 为超时时间*/
int CJSEDec(PTCJSEStru v_ss, TCJUINT4 v_sno, TCJUINT4 v_val,
TCJUINT4 v_timeout, PTCJEMStack v_stack);
/*设置指定信号灯的当前值*/
int CJSESetVal(PTCJSEStru v_ss, TCJUINT4 v_sno, int v_val,
PTCJEMStack v_stack);
/*设置指定信号灯的当前值*/
int CJSEGetVal(PTCJSEStru v_ss, TCJUINT4 v_sno, int * v_val,
PTCJEMStack v_stack);
/*销毁信号灯*/
int CJSEDestroy(PTCJSEStru v_ss, PTCJEMStack v_stack);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -