- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ipc进程间通信
IPC进程间通信 了解信号应用里面一个计时器 真实计时器:程序运行总时间 虚拟计时器:用户态时间 实用计时器:用户态+ 内核态时间 真正 注的是程序运行总时间 3个计时器发送的时钟信号分别为:SIGALRM 、SIGVTALRM 、SIGPROF includesys/time.h int getitimer(int which, struct itimerval* value); int setitimer(int which, struct itimerval* value, struct itimerval* old value); 参数:which 选择应用哪种计时器。 vi timer.c #includestdio.h #includesys/time.h #includesignal.h void fa(signo) { printf(I am superman !\n); } int main() { signal(SIGALRM,fa); struct itimerval timer; //设置计时器 //设置间隔时间 timer.it_interval.tv_sec = 1; timer.it_interval.tv_usec= 100000; //设置开始时间 timer.it_value.tv_sec = 5; timer.it_value.tv_usec=0; setitimer(SIGALRM,timer,0); while(1); } ======================================================= IPC --进程间通信 (两个、多个进程数据交互) 进程间通信的方式: 1、文件 2 、信号 3、管道 4 、共享内存 5、消息队列 6、信号量集 (semaphore ) 7、网络套接字socket 其中,共享内存、消息队列、消息队列和信号量集遵守相同的规范,叫XSI IPC 。 最重要的是消息队列 IPC 的应用基本上遵循一个固定套路,在编程时只需要按照固定的步骤调用相应的函数即可。 管道是最古老的IPC方式,目前较少使用。管道分为有名管道和无名 管道,有名管道可以用于各种进程的IPC,而无名管道只能用于fork()创建的子进程之间。 管道的交互媒介是一种特殊的文件:管道文件。管道文件的创建必须用mkfifo命令/mkfifo() 函数,touch不 能创建管道文件,管道文件后缀是.pipe 。 管道只是交互的媒介,不能用来存储数据,因此有输入输出都存在时,才畅通,否则就卡住。 如果使用管道文件,系统会认为RDWR既是读管道,又是写管道,直接运行,不会阻塞。 XSI IPC 共享内存,消息队列和信号量集 XSI IPC 遵守相同的规范,因此用法上非常类似。 共同的使用方法: 1、创建时都需要使用key,key是一个整数,外部程序使用key来获取内核中的IPC结构 (共享内存、消息队 列、信号量集,也就是交互的媒介)。 2 、key 的获取方式有三种: a. 宏IPC_PRIVATE 直接做key,这种基本不使用,只能创建别的不能调用。 b. 可以定义一个头文件,把所有的key写死在头文件中。 c. 函数ftok()可以用一个真实存在目录和一个人工分配的项目 ID(低八位有效0~255), 自动生成一个key. 3、所有的IPC结构在内核中对应一个唯一的ID ,标识每一个IPC结构。 4 、key是用来查找ID 的,ID 是用来定位IPC结构的。 函数xxxget() ,比如shmget(key,)/msgget(key,)可以用key取得ID ,后续代码使用ID 即可。 5、创建IPC结构时,都需要一个flags参数,这个参数一般是: 0666|IPC_CREAT |IPC_EXCL 权限 创建 如果存在返回-1,代表出错 6、每种IPC结构都需要提供一个操作函数:xxxctl() ,至少包括以下的功能:1)IPC_STAT :取IPC结构的 相 属性 (查看) 2 )IPC_SET :修改IPC结构的部分属性 3 )IPC_RMID :删除IPC结构 注意:IPC结构由内核管理,因此如果不删除,重启机器依然存在
您可能关注的文档
最近下载
- 附件视频监控存储升级项目要求及参数.doc VIP
- 【高中地理】区域地理:天气与气候,气温及分布规律课时2课件 2023-2024学年高二人教版(2019)地理选择性必修1.pptx VIP
- 2025年安全金融知识题库及答案.docx VIP
- 施工方案管理培训课件.docx VIP
- 【高中地理】区域地理:天气与气候,气温及分布规律课时1课件2023-2024学年高二人教版(2019)地理选择性必修1.pptx VIP
- 全新IMPA船舶物料指南(第7版)电子版.xls VIP
- 东方财富杯金融安全知识题库.docx VIP
- 2025年必威体育精装版详版征信报告个人信用报告样板模板word格式新版可编辑.docx
- 孙氏太极拳(孙禄堂原著孙剑云整理).pdf VIP
- 车辆抵押借款合同范本协议(2025版).docx VIP
文档评论(0)