资源简介
代码实现了共享内存和信号量的结合,实现进程间通信及其同步问题。通过此代码可以理解共享内存及信号量基本函数的使用及实现原理。
代码片段和文件信息
#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;
}
相关资源
- 一个labview仿真的函数信号发生器.vi
- 《数字信号处理第三版》课后习题答
- 基于蓝牙4.0的设备通信方案设计与实
- 瑞利信道的仿真,包括信号的调制,
- 信号估计DOAmusicespritcapon
- 数字频率合成dds正弦波基于FPGA的DDS产
- 用FFT对信号进行频谱分析
- mp重构一维信号(可运行)
- 信号与系统习题(一到八章的习题)
- 利用语音信号的短时能量与短时过零
- 数字信号处理实验1信号系统及其响应
- 谐波小波分析的源代码,应该属于信
- 操作系统共享内存实验
- 2FSK2PSK信号产生器实验实验报告
- 信号与系统 第三版 陈生潭 郭宝龙
- 细菌cyclic di-AMP的信号调控
- 矿井信号收发器通信模块设计
- 矿用多功能WiFi信号转换器的设计
- 基于WiFi技术的矿井信号收发器设计
- Belle-II和ILC的马约拉纳中微子信号
- LabVIEW 声音信号的采集与存储.vi
- 关于DDR3信号扇出和走线问题解析
- 在PCB板设计中高效地使用BGA信号布线
- 压缩感知常见测量矩阵一维仿真信号
- 基于ARM7 PWM定时器的图像传感器时序信
- 用ARM7和UC/OS-II设计的信号采集系统
- 一种用ARM7+UC/OS-II设计的信号采集系统
- 雷帕霉素通过抑制mTOR信号通路促进新
- FC-FS-3 光纤通道帧信号
- 基于51单片机的交通信号灯程序
评论
共有 条评论