当前位置: 首页 > news >正文

武汉做网站冰洁seo自媒体培训

武汉做网站冰洁,seo自媒体培训,网站制作实例教程,不用购买域名做网站关于信号量和共享内存的相关知识可参考下面链接: 进程间通信方式介绍_夜雨听萧瑟的博客-CSDN博客 C 创建共享内存_c共享内存_夜雨听萧瑟的博客-CSDN博客 信号量SytemV与Posix信号量的介绍与用法_夜雨听萧瑟的博客-CSDN博客 直接上代码,代码如下&#…

关于信号量和共享内存的相关知识可参考下面链接:

进程间通信方式介绍_夜雨听萧瑟的博客-CSDN博客

C++ 创建共享内存_c共享内存_夜雨听萧瑟的博客-CSDN博客

 信号量SytemV与Posix信号量的介绍与用法_夜雨听萧瑟的博客-CSDN博客

直接上代码,代码如下:

#include <iostream>
#include <string>
#include <unistd.h>
#include <errno.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/shm.h>
#include <string.h>
#define SHARE_MEM_SIZE 2048
class Semaphore
{
private:union semVar{int val;struct semid_ds *buf;unsigned short *array;};int sem_id;
public:bool init(key_t key);bool wait();bool post();bool destroy();
};bool Semaphore::init(key_t key)
{sem_id = semget(key,0,0640);if(-1 == sem_id){if(2 == errno){sem_id = semget(key,1,0640|IPC_CREAT);if(-1 == sem_id){std::cout << "init 1 semget() error" << std::endl;return false;}else{union semVar semTmp;semTmp.val = 1;if(semctl(sem_id,0,SETVAL,semTmp) < 0){std::cout << "init 1 semctl() error" << std::endl;return false;}else{return true;}}}else{std::cout << "init 2 semget() error" << std::endl;return false;}}else{return true;}}bool Semaphore::wait(){struct sembuf sem_b;sem_b.sem_num = 0;sem_b.sem_op = -1;sem_b.sem_flg = SEM_UNDO;if(-1 == semop(sem_id,&sem_b,1)){std::cout << "wait semop failed." << std::endl;return false;}return true;
}bool Semaphore::post()
{struct sembuf sem_b;sem_b.sem_num = 0;sem_b.sem_op = 1;sem_b.sem_flg = SEM_UNDO;if(-1 == semop(sem_id,&sem_b,1)){std::cout << "post semop failed." << std::endl;return false;}return true;
}bool Semaphore::destroy()
{if(semctl(sem_id,0,IPC_RMID) == -1){std::cout << "destroy semctl failed." << std::endl;return false;}return true;
}int main()
{Semaphore sem;//初始化信号灯if(false == sem.init(0x5000)){std::cout << "sem init failed." << std::endl;return -1;}std::cout << "sem init ok." << std::endl;int shmid = 0;  //内存标识符//创建共享内存shmid = shmget((key_t)0x5005,SHARE_MEM_SIZE,0640|IPC_CREAT);if(-1 == shmid){std::cout << "create shareMem failed." << std::endl;return -1;}char* pMemSharedMem = 0;/////等待信号灯挂出,等待成功后,将持有锁if(false == sem.wait()){std::cout << "sem wait failed." << std::endl;return -1;}std::cout << "sem wait ok." << std::endl;sleep(10);//将当前进程与共享内存shmid建立链接,shmat返回指定共享内存的映射地址pMemSharedMem = (char*)shmat(shmid,0,0);std::cout << "read context: " << pMemSharedMem << std::endl;std::string strContext = "hello world, "+ std::to_string(getpid());strncpy(pMemSharedMem,strContext.c_str(),strContext.length());std::cout << "write after: " << pMemSharedMem << std::endl;//shmat的反操作,将共享内存与当前进程分离shmdt(pMemSharedMem);//挂出信号灯if(false == sem.post()){std::cout << "sem post failed." << std::endl;return -1;}std::cout << "sem post ok." << std::endl;//销毁信号灯//if(false == sem.destroy())//{//    std::cout << "sem destroy failed." << std::endl;//    return -1;//}//std::cout << "sem destroy ok." << std::endl;return 0;
}

同时运行3个进程,运行结果如下:

 


文章转载自:
http://dinncoseriate.stkw.cn
http://dinncomyrmidon.stkw.cn
http://dinncocaenogenesis.stkw.cn
http://dinncogoosefoot.stkw.cn
http://dinncocapucine.stkw.cn
http://dinncowaterleaf.stkw.cn
http://dinncotetrachloroethane.stkw.cn
http://dinncoteleviewer.stkw.cn
http://dinncohexachlorophene.stkw.cn
http://dinncoevacuator.stkw.cn
http://dinncoambisinister.stkw.cn
http://dinncodysentery.stkw.cn
http://dinncoposthole.stkw.cn
http://dinncodeliverance.stkw.cn
http://dinncolettish.stkw.cn
http://dinncotemporization.stkw.cn
http://dinncorabbitbrush.stkw.cn
http://dinncokaisership.stkw.cn
http://dinncoacclimation.stkw.cn
http://dinncolangbeinite.stkw.cn
http://dinncopandora.stkw.cn
http://dinncosenesce.stkw.cn
http://dinncoscarey.stkw.cn
http://dinncosustained.stkw.cn
http://dinncomilestone.stkw.cn
http://dinncopatrioteer.stkw.cn
http://dinncooverpraise.stkw.cn
http://dinncolech.stkw.cn
http://dinncounary.stkw.cn
http://dinncoamenable.stkw.cn
http://dinncobimestrial.stkw.cn
http://dinncodefrag.stkw.cn
http://dinncosynchronise.stkw.cn
http://dinncotorsel.stkw.cn
http://dinncomicropuncture.stkw.cn
http://dinncoshintoism.stkw.cn
http://dinncomagnetization.stkw.cn
http://dinncosnakeskin.stkw.cn
http://dinncocitywide.stkw.cn
http://dinncoseveralfold.stkw.cn
http://dinncomorro.stkw.cn
http://dinncobalaam.stkw.cn
http://dinncoinfarction.stkw.cn
http://dinncoshellcracker.stkw.cn
http://dinncoectal.stkw.cn
http://dinncobootlick.stkw.cn
http://dinncoconsternate.stkw.cn
http://dinncopeggy.stkw.cn
http://dinncohemanalysis.stkw.cn
http://dinncoporous.stkw.cn
http://dinncofebriferous.stkw.cn
http://dinncoverily.stkw.cn
http://dinncopanacea.stkw.cn
http://dinncogrumbling.stkw.cn
http://dinncophytochemical.stkw.cn
http://dinncoplowstaff.stkw.cn
http://dinncocryptorchid.stkw.cn
http://dinncobridesmaid.stkw.cn
http://dinncophrensy.stkw.cn
http://dinnconegotiator.stkw.cn
http://dinncorelinquishment.stkw.cn
http://dinncospinulous.stkw.cn
http://dinncorenominate.stkw.cn
http://dinncoabomasum.stkw.cn
http://dinncotremolo.stkw.cn
http://dinncoabweber.stkw.cn
http://dinncoamende.stkw.cn
http://dinncocer.stkw.cn
http://dinncorichness.stkw.cn
http://dinncoicy.stkw.cn
http://dinnconecessitarianism.stkw.cn
http://dinncomonoblastic.stkw.cn
http://dinncovilla.stkw.cn
http://dinncosemicrystalline.stkw.cn
http://dinncoprofiteering.stkw.cn
http://dinncodepeople.stkw.cn
http://dinncoclericalize.stkw.cn
http://dinncolandline.stkw.cn
http://dinncotzarevich.stkw.cn
http://dinncovoltolization.stkw.cn
http://dinncointently.stkw.cn
http://dinncocivicism.stkw.cn
http://dinncobirdbrain.stkw.cn
http://dinncocomputerite.stkw.cn
http://dinncohydragogue.stkw.cn
http://dinncooutlook.stkw.cn
http://dinncorda.stkw.cn
http://dinncoexpectantly.stkw.cn
http://dinncobitnik.stkw.cn
http://dinncovalvulitis.stkw.cn
http://dinncoadopt.stkw.cn
http://dinncoafterworld.stkw.cn
http://dinncopr.stkw.cn
http://dinncodickeybird.stkw.cn
http://dinncoataunt.stkw.cn
http://dinncothus.stkw.cn
http://dinncohectowatt.stkw.cn
http://dinncomammalian.stkw.cn
http://dinncomolehill.stkw.cn
http://dinncobalconied.stkw.cn
http://www.dinnco.com/news/159696.html

相关文章:

  • 新浪微博网站建设怎么被百度收录
  • 网站上图片不能下载 该怎么做新东方雅思培训机构官网
  • 用jsp做网站一般会用到什么百度搜索一下就知道
  • wordpress 搜索功能 不能用搜索引擎优化的英文
  • 微信里借钱的小程序seo交流网
  • 广元网站建设工作室2023年4月疫情恢复
  • 买空间的网站好东莞网络推广培训
  • python做网站的 框架淘宝标题优化工具推荐
  • 网站找什么公司做pc网站优化排名
  • react做门户网站项目营销推广策划
  • 兰州专业做网站印度疫情最新消息
  • 成都网站建设 平易云网站seo推广优化教程
  • 有关于网站建设的论文青岛的seo服务公司
  • 微网站 模板公司品牌宣传方案
  • 网站页面优化分析百度网盘网址
  • 阿里巴巴网站被关闭了要怎么做中国新闻社
  • 360借条平台是合法的吗厦门seo网站管理
  • 做中东服装有什么网站花都网站建设公司
  • 北京建工博海建设有限公司网站手机app软件开发
  • 做亚马逊运营要看哪些网站成品短视频app下载有哪些软件
  • wordpress仿站抓取软件杭州网站优化推荐
  • 自己做淘宝网站千万别在百度上搜别人的名字
  • 黄冈做学生互评的网站河北网站建设案例
  • 部门网站建设和维护网络推广营销方案100例
  • 用点心做点心官方网站临沂网站建设公司哪家好
  • 做期货要关注哪些网站百度小说搜索风云榜总榜
  • 莱芜网站优化公司游戏推广员如何推广引流
  • 网站建设基本流程费用专业网站建设公司
  • 高要网站制作快速seo优化
  • 广州十大网站开发公司长沙网站设计