第五讲系统调用new教学文案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:/*mynice.c*/ #include stdio.h main () { printf (original priority\n); system (ps -l); /* Execute a ps */ nice (0); /* Add 0 to my priority */ printf (running at priority 0\n); system (ps -l); /* Execute another ps */ nice (10); /* Add 10 to my priority */ printf (running at priority 10\n); system (ps -l); /* Execute the last ps */ } 5.3.3.7 改变优先级nice() * uid_t getuid() 返回调用进程的真正用户ID uid_t geteuid() 返回调用进程的有效用户ID gid_t getgid() 返回调用进程的真正用户组ID gid_t getegid() 返回调用进程的有效用户组ID ID号对应在”/etc/passwd”和”/etc/group”文件中列出的用户ID和用户组ID,这些调用总是成功的。 int setuid(uid_t id) int seteuid(uid_t id) int setgid(uid_t id) int setegid(uid_t id) 这些调用只有被超级用户执行或被调用进程的真正用户和用户组执行时才会成功。如果成功,返回0,否则返回-1。 5.3.3.8其它进程管理系统调用 * 5.4 信号 程序必须处理没有预期的或不可预知的事件,如: 浮点错误 掉电 闹钟“响铃” 子进程的死亡 用户的终止请求(即ctrl-c) 用户的挂起请求(即ctrl-z) 这些事件发生时,必须中断正常的程序流进行处理。当linux意识到发生这样的一个事件时,它会给相应进程发送一个信号。每个可能的事件对应一个唯一的用数字表示的信号。 * 5.4.1 信号简介 例:如果进程中出现浮点错误,内核给出错的进程发送信号8 内核 进程 信号#8 浮点错误信号 * 不是只有内核才能发送信号,任何进程都可以 给其他进程发送信号,只要它有权限。 一段特殊的用于处理或忽略特定信号的程序叫 做“信号处理程序”。处理信号过程中,收到信号的进 程挂起它当前的控制流,执行信号处理程序,处理结 束时恢复原来的控制流。 5.4.1 信号简介 * Linux支持两种信号类型: 1.标准信号----传统的UNIX信号 2.实时信号(或排队信号) 传统信号传递给进程是通过设置位图中的一位来完成的,位图中每一位对应一个信号。因此,无法表示同一个信号的多个实例。因为位图只能表示1(有信号)和0(无信号) POSIX1003.1b为实时进程定义了排队信号。同一个信号的连续实例是有效的,需要被正确地传递。为了使用排队信号,必须使用系统调用sigaction(),而不是signal()。 5.4.2 信号类型 * 信号在”/usr/include/signal.h”或”/usr/include/asm/signal.h”和其他平台特定的头文件中定义。 程序员可以选择特定的信号触发用户提供的信号处理程序或内核提供的处理程序,或者忽略。 默认的处理程序通常执行下面的一个操作: (1)终止进程并在一个核心文件中生成内存的转储(core) (2)终止进程,不生成核心映像文件(quit) (3)忽略并放弃信号(ingnore) (4)挂起进程(stop) (5)恢复进程(restore) 5.4.3 信号定义 * Linux中定义的标准POSIX信号 宏名 编号 默认操作 描述 SIGHUP 1 quit 控制进程的挂起或死亡 SIGINT 2 quit 键盘中断 SIGQUIT 3 core 退出 SIGILL 4

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档