代码拉取完成,页面将自动刷新
同步操作将从 icesky1stm/Xipkpublib_Update 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/*******************************************************
* 公 司: 大连同方软银科技有限公司
* 程 序 名: TraceNoProc.c
* 程序功能: 流水号操作函数簇
* 输入参数:
* 输出参数:
* 返 回 值:
* 作 者: yangwc
* 开发日期: 2007/1
* 修 改 人:
* 修改日期:
*******************************************************/
#include "kernel/syspub.h"
#include "kernel/xipcmstc.h"
static int shm_id, sem_id;
static struct sembuf p={0,-1,0}, v={0,1,0};
int init_id(TxipCMStc *xip)
{
key_t shm_key,sem_key;
static long *par;
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
} arg;
shm_key = ftok((char *)getenv("HOME"), Mxip_shmkey);
sem_key = ftok((char *)getenv("HOME"), Mxip_semkey);
if (-1 == (shm_id = shmget(shm_key ,sizeof(long),IPC_EXCL|IPC_CREAT|0700)))
{
if (-1 == (shm_id = shmget(shm_key ,sizeof(long),IPC_CREAT)))
{
XIPLOG("E", "Get shm_key err");
return -1;
}
}
else
{
if ((long *)-1 == (par = (long *)shmat(shm_id,(char *)0,0700)))
{
XIPLOG("E", "init - shmat err");
return -1;
}
*par = 0L;
if (-1 == (shmdt((char *)par)))
{
XIPLOG("E", "init - shmdt err");
return -1;
}
}
if (-1 == (sem_id = semget(sem_key,1,IPC_EXCL|IPC_CREAT|0700)))
{
if (-1 == (sem_id = semget(sem_key,1,IPC_CREAT)))
{
XIPLOG("E", "Get sem_key err");
return -1;
}
}
else
{
arg.val = 1;
if (-1 == (semctl(sem_id, 0 ,SETVAL,arg)))
{
XIPLOG("E", "Set sectl err");
return (-1);
}
}
return(0);
}
int move_id(TxipCMStc *xip)
{
if (shmctl(shm_id,IPC_RMID,NULL) == -1)
{
XIPLOG("E", "error in closing shmctl...");
return -1;
}
if (semctl(sem_id,0,IPC_RMID,NULL) < 0)
{
XIPLOG("E", "error in closing semctl...");
return -1;
}
return (0);
}
long get_tlsrno( TxipCMStc *xip )
{
static long *par;
static long tlsrno;
if (-1 == init_id(xip)) return -1;
semop(sem_id,&p,1);
if ((long *)-1 == (par = (long *)shmat(shm_id,(char *)0,0600)))
{
XIPLOG("E", "In Get shmat err");
semop(sem_id, &v, 1);
return -1;
}
*par += 1;
if (*par > Mxip_maxseq) *par = Mxip_minseq;
if (*par < Mxip_minseq) *par = Mxip_minseq;
tlsrno = *par;
if ( -1 == (shmdt((char *)par)) )
{
XIPLOG("E", "In Get shmdt err");
semop(sem_id, &v, 1);
return -1;
}
semop(sem_id,&v,1);
return(tlsrno);
}
long set_tlsrno(TxipCMStc *xip, long tlsrno)
{
long *par;
if (-1 == init_id(xip))
{
return -1;
}
if (0 > (par = (long *)shmat(shm_id,(char *)0,0))) return(-1);
*par = tlsrno;
if (-1 == (shmdt((char *)par)))
{
return -1;
}
return(tlsrno);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。