资源简介
代码实现了共享内存和信号量的结合,实现进程间通信及其同步问题。通过此代码可以理解共享内存及信号量基本函数的使用及实现原理。
代码片段和文件信息
#include “semtest.h“
static int comm_sem( int numsint semflag)
{
key_t key = ftok(SEM_PATHNAMESEM_PROJ_ID);
if(key < 0)
{
perror(“ftok“);
return -1;
}
int semid = semget(key nums semflag);
if(semid < 0)
{
perror(“semget“);
return -1;
}
return semid;
}
int create_sems(int nums)
{
return comm_sem(numsIPC_CREAT|IPC_EXCL|666);
}
int get_sems(int nums)
{
return comm_sem(numsIPC_CREAT);
}
union semun{
int val;
struct semid_ds *buf;
unsigned short *array;
struct seminfo * __buf;
};
int init_sems(int semid int which int value)
{
union semun _semun;
_semun.val = value;
int ret = semctl(semidwhichSETVAL_semun);
if(ret < 0)
{
perror(“init_sem“);
return -1;
}
return 0;
}
int destory_sems(int semid)
{
int ret = semctl(semid0IPC_RMIDNULL);
if(ret <0)
{
perror(“rm_sem“);
return -1;
}
return 0;
}
static int comm_sem_op(int semid int which int op)
{
struct sembuf _sembuf;
_sembuf.sem_num = which;
_sembuf.sem_op = op;
_sembuf.sem_flg = 0;
return semop(semid&_sembuf1);
}
int P(int semidint which)
{
return comm_sem_op(semidwhich-1);
}
int V(int semid int which)
{
return comm_sem_op(semidwhich1);
}
int getnums(int semidint which){
int ret;
int value;
union semun _semun;
printf(“111 which === %d value === %d\n“which_semun.val);
ret = semctl(semidwhichGETVAL_semun.val);
value = _semun.val;
printf(“222 which === %d value === %d\n“which_semun.val);
return ret;
}
相关资源
- 弯道声光预警信号装置的应用
- 新型柴油机车运输弯道声光语言报警
- 论文研究 - 多阶段人行横道和两阶段
- 基于FPGA的三种信号处理器的集成设计
- 心电信号的处理与自动诊断-心电信号
- 论文研究 - 急性淋巴细胞白血病中B
- 复方浙贝颗粒联合阿霉素对AML-KG-1a移
- 随机信号处理 陆光华等编著
- 多速率数字信号处理_中科大
- 奥本海姆离散时间信号处理第二版习
- 关于BPSK、QPSK、MSK、QAM的调制与解调
- ADS信号完整性仿真分析技术.pdf288430
- 基于FPGA的双通道幅度相位频率可调节
- 北理工《信号与信息处理实验Ⅱ》实
- 北理工《信号与信息处理实验Ⅰ》实
- TDLAS气体检测系统中FPGA控制与信号处
- 基于stm32和ad9850的dds信号源
- 基于STM32的AD7705双路信号采集
- 基于STM32的信号频率测量
- 信号与系统习题精解与考研指导
- MSP430信号发生器.rar
- 基于Labview信号发生器设计
- 模拟信号处理
- 张贤达《现代信号处理》习题与解答
- multisim仿真生成心电信号
- 微信号码自助解封工具2015v2.2绿色版
- eda信号发生器的设计VHDL
- NI LabVIEW信号处理概述.zip
- 基于AT89C51单片机信号发生器设计.pd
- 下垂控制下直流微电网小信号稳定性
评论
共有 条评论