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

📄 cj_semaphore.h

📁 堆栈等代码
💻 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 + -