- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程调用实验
附录:与实验相关的系统调用
1、int fork( )创建一个新进程
返回值的意义: 0,创建子进程,从子进程返回的id值
-1,创建失败
大于0,从父进程返回的子进程id值
2、lockf(files, function, size)锁定/解锁文件或文件的某段
该函数的头文件为:#include unistd.h
参数定义: int lockf(int files, int function, long size)
含义: files是文件描述符;
function为1表示锁定,为0表示解锁;
size是锁定或解锁的字节数,若用0,表示从文件的当前位置到文件尾。
3、msgget(key, flag)获得一个消息的描述符,该描述符指定一个消息队列以便用于其它系统调用
该函数使用头文件: #include sys/types.h
#include sys/ipc.h
#include sys/msg.h
参数定义:int msgget(key_t key, int flag)
语法格式:msgqid=msgget(key, flag)
含义:msgqid是该系统调用返回的描述符,失败则返回-1
flag本身由操作允许权和控制命令值相“或”得到
4、msgsnd(id,msgp,size,flag)发送消息
该函数使用头文件: #include sys/types.h
#include sys/ipc.h
#include sys/msg.h
参数定义:int msgsnd(int id, struct msgbuf * msgp, int size, size flag)
含义:id是返回消息队列的描述符;
msgp是指向用户存储区的一个构造体指针;
size指示由msgp指向的数据结构中字符数组的长度,即消息长度;
flag规定当核心用尽内部缓冲空间时应执行的动作。若在标志flag中未设置IPC_NOWAIT位,则当该消息队列中的字节数超过一最大值时,或系统范围的消息数超过某一最大值时,调用msgsnd的进程睡眠。若设置了IPC_NOWAIT,则在此情况下,msgsnd立即返回。
5、msgrcv(id,msgp,size,type,flag)接收消息
语法格式:count=msgrcv(id,msgp,size,type,flag)。count返回消息字节数。
头文件和参数含义基本同msgsnd一样。不同处在于:
多了参数type。type表示用户要读的消息的类型。type为0,表示接收该队列的第一个消息;为正,接收类型type的第一个消息;为负,接收小于或等于type绝对值的最低类型的第一个消息。
参数flag:规定倘若该队列无消息,核心应当做什么。如果在flag中设置了IPC_NOWAIT 标志,则立即返回;若设置了MSG_NOERROR标志,且所接收的消息大小大于size,核心截断所接收的消息。
6、msgctl(id,cmd,buf)查询或设置一个消息描述符的状态,或删除一个消息描述符
头文件同上述3、4、5函数
参数:id,消息描述符;buf,是含有控制参数或查询结果的用户数据结构的地址;
cmd,命令类的型:
若为IPC_STAT,将与id相关联的消息队列首标读如buf;
若为IPC_SET,为该消息队列设置状态
若为IPC_RMID,删除id代表的消息队列
7、shmget(key,size,flag)获得一个共享存储区,存储区关键字为key,存储区长度为size
该函数使用头文件: #include sys/types.h
#include sys/ipc.h
#include sys/shm.h
参数定义:int shmget(key_t key, int size, int flag)
语法格式:id=shmget(key, size, flag),其中,id是共享存储区的标识符
8、shmat(id, addr, flag)从逻辑上将一个共享存储区附接到进程的虚拟地址空间上
函数头文件同7
语法格式:virtaddr = shmat (id, addr, flag)
参数含义:id,共享存储区的标识符;addr,是用户要使用共享存储区附接的虚地址;flag规定对此区的读写权限。
9、shmdt(addr)把一个共享存储区从指定进程的虚地址断开
函数头文件同7
语法:int shmdt(char * addr),若成功,返回0,否则返回-1。addr是该系统调用所返回的地址。
10、shmctl(id, cmd, buf)对与共享存储区关联的参数进行操作,从而控制共享存储区
头文件同7
语法格式:int shmctl(int id, int cmd, struct shmi
您可能关注的文档
最近下载
- 兵工科技2014-14.pdf
- DL T 5745-2016 电力建设工程工程量清单计价规范.docx VIP
- 运单填写规范.ppt
- 岗位风险告知卡(挖掘机、装载机司机岗位).docx VIP
- 西师大版四年级上册数学第七单元 三位数除以两位数的除法 测试卷(突破训练)word版.docx
- 党团基本知识学习与社会实践思想报告【4篇】.docx VIP
- 文华财经指标公式源码WH6指标公式期货软件指标画线指标公式.doc
- 征地应急预案共5篇.docx VIP
- 精品解析:2024年天津市部分区中考二模语文试题(解析版).docx VIP
- 2022儿科副护士长竞聘职位PPT简医院儿科副护士长岗位竞聘自我介绍PPT课件(带内容).pptx
文档评论(0)