POSIX统一标准理解专业资料.doc
《POSIX统一标准理解专业资料.doc》由会员分享,可在线阅读,更多相关《POSIX统一标准理解专业资料.doc(44页珍藏版)》请在咨信网上搜索。
1、POSIX原则理解POSIX原则总体分析 POSIX,全称为可移植性操作系统接口,是一种关于信息技术IEEE原则。它涉及了系统应用程序接口(简称API),以及实时扩展C语言。该原则目是定义了原则基于UNIX操作系统系统接口和环境来支持源代码级可移植性。当前,原则重要提供了依赖C语言一系列原则服务,再将来版本中,原则将致力于提供基于不同语言规范。该原则对核心需求某些定义了一系列任何编程语言都通用服务,这一某些服务重要从其功能需求方面阐述,而非定义依赖于编程语言接口。语言规范重要有两某些构成。一某些涉及了访问核心服务编程语言原则接口,这些核心服务为原则中基于编程语言核心需求某些所定义;另一某些包括
2、了一种特殊语言服务原则接口。基于任何语言,与该原则一致执行都必要遵循语言规范任何章节。该原则一共被分为四个某些:(1)陈述范畴和一系列原则参照(第一章);(2)定义和总概念;(第二章)(3)各种接口设备;(第三章到第九章,第十一章到第十五章)(4)数据互换格式;(第十章)该原则重要目有:(1)面向应用(2)定义接口,而不是它详细实现;(3)涉及资源和可移植性,而非对象;(4)基于c语言;(5)无超级顾客,无系统管理;(6)最小限度接口,最小限度定义;(7)应用领域广泛;(8)对此前实现进行最小限度变化;(9)对原有程序代码做最小修改;(10)实时扩展;如下就对各个章节做简要分析。第一章概述11
3、范畴定义范畴核心要素有:(1)定义足够一套功能合用于实时应用程序领域重要某些;(2)定义足够实现规范和性能有关函数,以便容许实时应用程序完毕系统拟定性响应;12一致性系统须支持原则中定义接口,系统可以提供原则中没有规定到函数和工具。在遵循于该原则实现中,一种一致性文档是需要用到,它必要具备与该原则相似构造,包具有全名,数字,和原则所批示日期,以及头文献和中界限值等等。该一致性文档详细阐明了原则中定义执行行为。该原则规定了应用程序一致性,所有遵循原则应用程序都使用基于c语言服务。第二章术语和基本需求21定义(1)术语该原则中定义了一系列术语,如一致性文档,被定义实现,也许性,无用特性等,还定义了
4、某些通用名词,如绝对途径,存取模式,地址空间,恰当权限,定期器,异步I/O操作,后台进程,后台进程组,块文献,阻塞进程,等等。(2)基本概念 扩展安全控制;文献存取容许;文献级别;文献名可移植性;途径名决定;(3)错误号大某些函数都在外部变量errno中提供了错误号,定义如下:extern int errno;(4)简朴系统数据类型这些数据类型在头文献中定义,它包括了至少如下类型:dev_t:用于设备号;gid_t:用于进程标志符;ino_t:用于文献序列号;inode_t: 用于某些文献参数;nlink_t:用于连接内容;off_t:用于文献大小;pid_t: 用于进程或进程组标志符;siz
5、e_t: 在c原则(2)中定义;ssize_t:用于返回字节数和错误标志函数;uid_t:用于顾客标志符;(5)环境描述当一种进程开始执行时,将调用一种表达环境字符串数组,这个数组为外部变量environ所指向,其定义如下:extern char *environ;(6)其她在该章中,原则还总体简介了c语言定义某些标志符,数字方面限制,以及某些符号常量,这些在后来章节中都会一一浮现。如下是OSE服务简要设计描述一种清单。这些规定详细论述在POSIX规范书中。l 进程源语进程源语所涉及函数完毕了大多数简朴操作系统服务,如进程解决,进程信号,以及定期器。普通状况下,该原则所拟定进程所有属性都不能被
6、一种进程源语变化,除非描述符特别指明。l 进程环境l 目录与文献目录与文献所涉及函数执行了一系列操作系统服务,例如文献创立和删除,检测,修改特性。它们提供了重要办法,进程由于一系列I/O操作使用她们来存取文献和目录。l 输入输出原语 这些子文献和管道函数解决输入和输出。功能被指定为进行文献描述符管理和I/O活动之间得平衡调节。l 设备驱动和分类函数 该章节描述了一种基本终端接口和某些基本终端控制函数,如果执行时被提供,所有异步通信端口都应当支持它,接口是支持网络连接还是异步端口或者两者都支持由完毕者定义,一致性文档应当描述那些设备类型被这些接口所支持。本章某些函数重要应用与进程控制终端l 基于
7、c语言得服务l 系统数据库l 数据互换格式l 异步l 内存管理l 执行调度l 时钟和定期器l 消息传递第三章进程原语31进程创立和执行1进程创立函数原型:pid_t fork (void)函数功能:调用时需要引用头文献是,fork()创立了一种新进程。2执行一种文献函数原型:int exec1(const char *path,const char *arg,);int execv(const char *path,const *char argv );int execle(const char *path,const char *arg,);int execve(const char *pa
8、th,const *char argv,char *const envp)int execlp(const char *file,const char *arg. );int execvp(const char *file,char *const argv);函数功能:exec系列函数用一种新进程映像代替了当迈进程映像,这个新进程映像创立于一种规则,可执行文献,叫做新进程映像文献。执行成功无返回值由于调用进程映像觉得新进程映像所覆盖。3.2进程终结进程终结有两种状况:(1)从main()函数返回时或者执行exit()或_exit()函数时正常终结;(2)被abort()函数祈求或者接受到某些信
9、号时不正常终结;1等待进程终结 函数原型:#include#includepid_t wait(int *stat_loc);pid_t waitpid(pid_t pid,int *stat_loc.int options);函数功能:wait()和waitpid()容许调用进程获得它一种子进程状态信息。Wait()函数将挂起调用进程直到获得了它子进程状态信息,或者是直到获得一种终结进程信号;如果pid1并且options=0,waitpid()函数功能将和waitpid()相似,否则它功能将根据pid和options值而变化。2.终结一种进程函数原型:void_exit(int statu
10、s);函数功能:_exit()函数将终结一种调用进程,该函数不能返回给其调用者3.3信号在头文献终声明了sigset_t类型和sigaction构造。完毕所定义信号分三类:必须信号;任务控制信号;内存保护信号,分别如下表:必须信号符号常量描述SIGABRT非正常终结信号SIGALRM超时信号SIGFPE错误运算操作SIGHUP为控制中断所检测到挂断SIGILL无效硬件信号检测SIGINT交互式信号SIGKILL终结信号SIGPIPE写信号SIGQUIT交互式终结信号SIGSEGV无效内存引用检测信号SIGTERM终结信号SIGUSR1保存信号SIGUSR2保存信号作业控制信号符号常量描述SIG
11、CHLD子进程终结或停止SIGCONT停止后继续SIGSTOP停止信号SIGTSTP交互式停止信号SIGTTIN从控制终端读SIGTTOU写到控制终端内存保护信号符号常量描述SIGBUS获取内存中不拟定某些每一种进程有一种进程标记(process mask),它定义了一组产生但被阻塞传递信号集。Sigaction(),sigpromask(),sigsuspend()函数控制这个进程标记行为。1.送一种信号到进程函数原型:#include #includeint kill(pid_t pid,int sig)函数功能:该函数发送一种信号到一种由pid指明进程或者进程组,sig标志了信号类型,其
12、值是0或者上表中值。如果发送成功,返回0,否则返回1。2.操纵信号集函数原型:#includeint sigemptyset(sigset_t *set);int sigfillset(sigset_t *set);int sigaddset(sigset_t *set,int signo);int sigdelset(sigset_t *set,int signo);int sigisemeber(const sigset_t *set,int signo);函数功能:sigsetops源语操纵信号集。她们操作以数字为对象,这些数据由应用程序地址所指向,而不是以系统所知信号集为对象。3.检测
13、和更改信号行为函数原型:#includeint sigaction(int sig,const struct sigaction *act,struct sigaction *oact);函数功能:该函数容许调用函数检查与拟定信号相联系行为,参数sig拟定了信号,sigaction构造在头文献中被定义,描述了所采用行为。如果参数act不为null,它指向一种构造,它指定了与信号相联系行为。如果参数oact不为null,先前与信号相联系行为将被存储到由oact指向地方。4.检查和变化阻塞信号函数原型:#includeint sigprocmask(int how,xonst sigset_t *
14、set,sigset_t *oset);函数功能:该函数用来检查和变化调用进程信号标记(signal mask),如果参数set不为null,它指向一种信号集用于变化当前阻塞集。参数how指明了变化方式,参数oset不为null时,先前信号标记被存储在它所指向地方,如果参数set为null,则参数how就没故意义了,并且进程信号标记不能随函数调用而变化。5.检查未定信号函数原型:#includeint sigpending(sigset_t *set);函数功能:该函数存储一种信号集,这些信号是在被调用进程传播和未定状况下阻塞,由参数set所指向。6.等待一种信号函数原型:#includein
15、t sigsuspend(const sigset_t *sigmask);函数功能:该函数用参数sigmask所指向信号集取代了进程信号标记(signal mask),然后挂起该进程直到接受到一种信号,其行为是执行信号跟踪功能或者是终结该进程。7.同步接受一种信号函数原型:#include int sigwaitinfo(const sigset_t *set,siginfo_t *info); int sigtimedwait(const sigset_t *set,siginfo_ *info,const struct timespec *timeout );函数功能:该函数从参数set
16、所拟定信号集中选取一种未定信号出来。如果该函数成功,返回一种信号数;否则返回1。8.排队一种信号到进程函数原型:#includeint sigqueue(pid_t pid,int signo,const union sigval value);函数功能:该函数功能是使由signo拟定信号将参数value所拟定值发送到由pid指明进程中去。3.4定期器操作1调度警报函数原型:unsigned int alarm(unsigned int seconds);函数功能:当参数seconds指定一段实时时间过去后,该函数将发送一种SIGALRM信号到调用进程。2.挂起进程执行函数原型:int pau
17、se(void);函数功能:该函数挂起一种调用进程直到得到一种信号,这个信号或者执行信号跟踪功能或者是终结该进程。如果是终结进程,该函数不返回;如果是执行信号跟踪功能,则该函数在信号跟踪函数返回后也要返回。3.延迟进程执行函数原型:unsigned int sleep(unsigned int seconds);函数功能:该函数使当迈进程从执行状态转化为挂起状态,直到参数seconds所指定一段实时时间过去后,或者是一种唤醒信号跟踪功能或终结进程功能信号到来。该挂起时间由于系统其她调度活动也许会比规定期间长。第四章进程环境4.1进程标志符1.获得进程和父进程ID函数原型:#includepid
18、_t getpid(void);pid_t getppid(void);函数功能:getpid()返回调用进程进程ID,getppid()返回调用进程父进程ID.4.2顾客ID1获得真实顾客,有效顾客,真是组,有效组ID函数原型:#includeuid_t getuid(void);uid_t geteuid(void);gid_t getgid(void);gid_t getegid(void);函数功能:getuid()返回调用进程真实顾客ID,geteuid()返回调用进程有效顾客ID,getgid()返回调用进程真实组ID,getegid()返回调用进程有效组ID。2.设立顾客和组ID
19、函数原型:#includeint setuid(uid_t uid);int setgid(gid_t gid);函数功能:这两个函数分别依照进程权限设立真实顾客ID,有效顾客ID,真实组ID,有效组ID。3.获得辅助组ID函数原型:# includeint getgroups(int gidsetsize.gid_t grouplist);函数功能:该函数在队列组列表中填入调用进程辅助组ID。参数grouplist拟定了组列表中元素个数。4.获得顾客名函数原型:char *getlogin(void)函数功能:该函数返回一种指针,指向与调用进程有关顾客名。4.3进程组1.获得进程组ID函数原
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- POSIX 统一标准 理解 专业 资料
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。