unix系统开发-系统调用-进程间通信.doc

unix系统开发-系统调用-进程间通信.doc

ID:34629151

大小:40.00 KB

页数:4页

时间:2019-03-08

unix系统开发-系统调用-进程间通信.doc_第1页
unix系统开发-系统调用-进程间通信.doc_第2页
unix系统开发-系统调用-进程间通信.doc_第3页
unix系统开发-系统调用-进程间通信.doc_第4页
资源描述:

《unix系统开发-系统调用-进程间通信.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、UNIX系统开发-系统调用-进程间通信基本上所有的系统调用成功时返回0或正数,失败时返回负值。进程的用户标志号管理系统调用的格式#includeunsignedshortgetuid()unsignedshortgetgid()unsignedshortgeteuid()unsignedshortgetegid()intsetuid(intuid)intsetgid(intgid)intseteuid(inteuid)intsetegid(integid)参数与功能说明:前四个系统调用返回进程的实际用户标志号,有效用户标志号,实际用户组

2、标志号和有效组标志号。这些调用总能成功。setuid和setgid用于设置进程的实际用户(组)标志号和有效用户(组)标志号。如果调用进程的有效用户标志号是超级用户标志号,则将调用进程的实际用户(组)标志号和有效用户(组)标志号设为uid和gid;如果调用进程的有效用户标志号不是超级用户标志号,但他的实际用户(组)标志号为uid(gid)时,则其有效用户(组)标志号设为uid或gid。如果调用进程的有效用户标志号不是超级用户标志号,且他的实际用户(组)标志号不为uid(gid)时,则调用失败。Seteuid和setegid与setuid,setgid类似,只

3、不过只对有效用户(组)标志号起作用。进程标志号管理系统调用的格式#include#includeintgetpid()intgetpgrp()intgetppid()intsetpgrp()intsetsid()参数与功能说明:前三个系统调用分别返回进程的进程标志号,进程组标志号和其父进程标志号。他们总能成功返回。第四,五个调用设置进程组标志号,他将调用进程的进程组标志号改为调用进程的进程标志号,使其成为进程组首进程,并返回这一新的进程组标志号。信号机构signal系统调用的格式#include

4、h>void(*signal(sig,func))()intsig;/*信号值*/void(*func)();/*信号处理方式*/参数与功能说明:按函数func的定义设置调用进程对信号sig的处理方式。执行成功时,返回调用进程先前对信号sig处理方式的值,失败时返回-1。参数func的取值为SIG_DFL,SIG_IGN或用户信号处理函数地址,分别表示缺省方式,或略方式和捕获方式。sig的取值有(重要的列出)SIGHUP挂起。当终端挂起时,该信号发送到和该终端相关的所有进程。当进程组中的首进程因某种原因中断时,也向该组的每个进程发送该信号SIGINT中断。

5、当敲击中断键时该信号发送到和该终端相关的所有进程SIGQUIT退出。当敲击(ctrl+)键时该信号发送到和该终端相关的所有进程SIGKILL杀死。杀死进程的信号,他不能被ignoreSIGSEGV段违例SIGPIPE写管道错。当进程向一个没有任何读进程的管道写数据时,发送该信号SIGALRM报警时钟。SIGTERM软件终止信号SIGUSR1自定义信号SIGUSR2自定义信号SIGCLD子进程消亡。当子进程因某种原因而消亡时,它向父进程发送该信号。SIGURG紧急的套接口条件SIGPOLL在一条流上发生了用户指定的事件时,流控制机制发送该信号到用户进程pa

6、use系统调用的格式intpause()参数与功能说明:使调用进程睡眠直到其接收到一信号为止。该调用的结果依赖进程对接收到的信号的处理方式。却省方式时,终止调用进程,pause无返回值或略方式时,调用进程继续睡眠捕获方式时,调用进程从信号处理函数返回后,继续往下执行,此时其调用的返回值为-1,errno为EINTRkill系统调用的格式intkill(pid,sig)intpid,sig;参数与功能说明:把一个信号值为sig的信号发送给进程标志号为pid的相关进程。该调用执行成功与否,依赖于调用进程的有效用户标志号和参数pid的值。Pid>0:将信号发给进

7、程号等于pid的进程Pid=0:将信号发给调用进程的同组进程Pid=-1:将信号发给实际用户号等于调用进程的有效用户标志号的所有进程非-1的负数:将信号发给进程组标志号为pid绝对值的所有进程系统调用的格式#includevoid(*sigset(sig,func))()intsig;void(*func)();intsighold(intsig)intsigrelse(intsig)intsigignore(intsig)intsigpause(intsig)参数与功能说明:sigset与signal功能基本相同,不同的是sigset

8、解决了signal系统调用需要重复设置信号捕获函数的问题。sigh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。