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

济南网站建设 unzz做网站需要什么东西

济南网站建设 unzz,做网站需要什么东西,市场营销策划课程,ionic3 做网站IPC通信方式: 一、共享内存 system v : 共享内存 是一块,内核预留的空间 最高效的通信方式 (避免了用户空间 到 内核空间的数据拷贝) 二、IPC对象操作通用框架: key值 > 申请 》读写 》关闭 》卸载 1.ftok函数:…

IPC通信方式:

一、共享内存

         system v :  共享内存 

  1. 是一块,内核预留的空间 
  2. 最高效的通信方式 (避免了用户空间 到 内核空间的数据拷贝)


 

    二、IPC对象操作通用框架:

key值 ==> 申请 ==》读写 ==》关闭 ==》卸载

1.ftok函数

        产生key值

 key_t ftok(const char *pathname, int proj_id);

        (1)功能:将pathname 和 proj_id 转换为 key值 

        (2)参数:pathname:给一个路径名 ;proj_id:工程id       eg: 'A'
        (3)返回值:成功: key值;失败: -1     

key_t key = ftok("/",'A');if (key < 0){perror("ftok fail");return -1;}printf("key = %d\n",key);
2.shmget函数

        通过key获取ipc对象 (共享内存)

int shmget(key_t key, size_t size, int shmflg);

        (1)功能:使用唯一键值key向内核提出共享内存使用申请
        (2)参数:key:唯一键值;size: 要申请的共享内存大小;shmflg: 申请的共享内存访问权限,八进制表示(如果是第一个申请,则用IPC_CREAT;如果要检测是否存在,用IPC_EXCL)
        (3)返回值:成功: 返回共享内存id,一般用shmid表示;失败 : -1;

int shmid = shmget(key,1024,IPC_CREAT|0666);if (shmid < 0){perror("shmget fail");return -1;}printf("shmid = %d\n",shmid);
3.shmat函数

        共享内存 绑定 

void *shmat(int shmid, const void *shmaddr, int shmflg);

        (1)功能:将指定shmid对应的共享内存映射到本地内存。

        (2)参数:shmid:要映射的本地内存;shmaddr:本地可用的地址,如果不确定则用NULL,表示由系统自动分配;shmflg:(0 :表示读写;SHM_RDONLY:只读)
        (3)返回值:成功: 返回映射的地址,一般等于shmaddr;失败: (void*)-1        

void *p = shmat(shmid,NULL,0);if(p == (void *)-1){perror("shmid fail");return -1;}signal(SIGUSR1,handler);pid_t *q = (pid_t *)p;*q = getpid();char *s = (char *)p;while(1){printf("s = %s\n",s);if(strncmp(s,"quit",4) == 0){break;}paus
4.shmdt函数:

        解除绑定(映射)

    int shmdt(const void *shmaddr);

        (1)功能:将本地内存与共享内存断开映射关系。
        (2)参数:shmaddr 要断开的映射地址。
        (3)返回值:成功:  0;失败:  -1;

if(shmdt(p) < 0){perror("shmdt fail");return -1;}
5.shmctl函数

        销毁IPC对象 

 int shmctl(int shmid, int cmd, struct shmid_ds *buf); //ctl = control 

        (1)功能:修改共享内存属性,也可以删除指定的共享内存对象。
        (2)参数:shmid: 要删除的共享内存对象;cmd: IPC_RMID 删除对象的宏;buff:  NULL 表示只删除对象。
        (3)返回值:成功: 0; 失败: -1

 if(shmctl(shmid,IPC_RMID,NULL) < 0){perror("shmctl fail");return -1;}

练习:

二、消息队列

        消息队列是一旦创建,则会一直存在。除非关机,或者自己在程序中做删除,或者通过命令的方式(ipcrm)显式的来删除!消息队列可以实现对不同类型的消息的收发,那么这些类型的消息是放在同一个消息队列中的!接收方可以学着接受哪种类型的消息!

三、信号量集        

        信号灯的出现主要是为了解决多任务程序并发执行时,对资源的访问出现的竞争同步的问题。信号量最初是对资源的一种抽象和模拟,最初的信号量(整型信号量),就是通过一个数值,来表示某种资源的个数,在你这个抽象的基础上,他的发明者Dijkstra(迪杰斯塔拉)为其制定了两个原子性(一次性执行完的,不可被中断的)的操作,P操作(passeren(申请通过)),V操作(vrijgeven释放)来实现对互斥资源的访问,后来处于对(1).多个临界资源的访问,(2)和资源使用数量的限制(在有些情况下,当资源数量低于某一下限值时,便不予分配).信号量的概念得到进一步发展,形成了所谓的”信号灯集”.

http://www.yayakq.cn/news/331346/

相关文章:

  • 网站论文参考文献招远网站设计
  • WordPress与odoo接口seo综合查询软件排名
  • 长沙cms建站模板公司名logo设计图片
  • 做软件赚钱的网站深圳农产品网站制作
  • 山东临沂网站推广哈尔滨网站制作哪家好
  • php怎么做网站快赣州网站设计
  • 个人网站用主机做服务器火车头采集wordpress发布说明
  • 吉林市做网站哪家好网站收录没了
  • 广州铁路投资建设集团网站手机怎么制作网站教程视频
  • 长安做网站国家企业信息信用公信系统
  • 重庆企业网站制作外包重庆市建设工程信息网安
  • 摄影网站设计图片网站建设中公司
  • 网站上线除了备案还需要什么私人家庭影院5577
  • 公司内部网站源码石家庄外贸网站建设公司
  • 免费网站添加站长统计网至普的营销型网站布局
  • 做自行车车队网站的名字大全重庆市设计院
  • .net网站开发项目深圳做棋牌网站建设多少钱
  • 做淘宝优惠券怎么有网站古柏广告设计公司
  • 做网站网页的专业163企业邮箱入口官网
  • 工信部网站备案时间如何做网站推广广告
  • 做宣传的网站有哪些网站建设推广多少钱
  • 怎么样注册自己的网站注册公司流程及费用办公场所 上海
  • 宜兴网站优化做网站语言
  • 江西建设厅网站财务部网站快速排名推广软件
  • 赤峰市做网站建设的公司张圣志建盏个人简介
  • 自己的网站做飘窗短视频网站平台怎么做的
  • 深圳网站建设的特殊性龙岩网站设计招聘信息
  • 英国网站建设做网站后都需要什么
  • 石景山网站建设多少钱ui设计师是什么意思
  • ppt超链接网站怎么做北京知名广告公司排行榜