当前位置: 首页 > news >正文

智慧团建注册登录入口下载seo搜索引擎优化方案

智慧团建注册登录入口下载,seo搜索引擎优化方案,网站建设与管理专业是什么,网站建设认证试题收发信号思想是 Linux 程序设计特性之一#xff0c;一个信号可以认为是一种软中断#xff0c;通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍#xff0c;从而更好的理解信号编程。 kill(2) 遵循 POSIX.1 - 2008 1.库 …           收发信号思想是 Linux 程序设计特性之一一个信号可以认为是一种软中断通过用来向进程通知异步事件。 本文讲述的 信号处理内容源自 Linux man。本文主要对各 API 进行详细介绍从而更好的理解信号编程。 kill(2) 遵循 POSIX.1 - 2008 1.库 标准 c 库libc, -lc 2.接口定义 这个接口依 _POSIX_C_SOURCE 特性测试宏。 #include signal.hint kill(pid_t pid, int sig);3.接口描述 kill() 系统调用可以用来向任何进程组或者进程发送任何信号。 如果 pid 是正值那么信号 sig 是发送给 pid 指定的进程。 如果 pid 是 0信号 sig 是发送给调用进程所在进程组的所有进程。 如果 pid 是 -1那么信号 sig 会发送给所有调用进程具有发送权限的进程除了 1 号进程init具体下面会讨论。 如果 pid 小于 -1那么信号 sig 会发送给 -pid 指定进程的进程组里所有的进程。 如果 sig 是 0那么不会发送任何信号但是仍然会进行进程是否存在和是否有权限等相关检查这个就可以用来检查是否存在允许调用者发送信号的进程 ID 或者进程组 ID 存在。 对于一个具有发送信号权限的进程来说它要么是特权的Linux 下需要具有目标进程用户名字空间的 CAP_KILL 能力要么发送进程的真实或者有效的用户 ID 和目标进程的真实或者保存的 set-user-ID 相同。对于 SIGCONT 信号发送和接收进程属于同一会话即可。一些历史版本的规则可能不太一样可以参考注意章节。 4.返回值 一旦成功至少有一个信号发送出去了就会返回 0。失败时会返回 -1具体错误信息通过 errno 来指示。 错误代码如下 EINVAL指定的信号不可用EPERM调用进程没有向目标进程组任何进程发送信号的权限ESRCH目标进程或者进程组不存在。注意一个存在的进程可能是一个僵尸即已经被终止执行terminated但是还没有 wait(2) 等待 5.历史 在不同的 Linux 内核版本上Linux 对非特权进程向其他进程发送信号实施了不同的策略。在 Linux 1.0 到 1.2.2 中如果发送进程的有效用户 ID 和目标的有效用户 ID 匹配或者它们的真实 ID 匹配那么就可以发送信号 。在 Linux 1.2.3 到 1.3.77只要发送进程的有效用户 ID 和目标进程的有效或者真实 ID 匹配就可以发送信号。目前的策略是遵循 POSIX.1并且在 Linux 1.3.78 中引入。 6.注意 对于 init 进程也就是 1 号进程只能向它发送它明确安装了信号处理函数的信号。这样做是为了保证系统不被偶然情况宕机。 POSIX.1 要求 kill(-1,sig) 向调用者所有能发送的进程发送信号除了一些实现定义的系统进程。Linux 允许进程向自己发送信号但是 kill(-1,sig) 不会向调用进程发送。 POSIX.1 要求如果进程向自己发送信号如果发送线程没有阻塞信号并且其他线程阻塞了该信号或者没有通过 sigwait(3) 等待该信号那么在 kill() 返回前至少要向发送线程发生一个非阻塞信号。 7.BUGS Linux 2.6 后一直到 2.6.7该接口一直存在一个 bug在向进程组进程发送信号时只要进程里有哪个进程没有权限发送信号接口就会返回 EPERM。即使返回这个错误信号还是发送给了有权限发送的进程了。 8.代码 下面是一个父进程通过 kill() 杀死子进程的例子。 #include stdio.h #include stdlib.h #include unistd.h #include signal.hint main(void){pid_t retVal;retVal fork();if(retVal 0){int i 0;while(i 5){printf(in the parent process.\n);sleep(1);}//kill the child processkill(retVal, SIGKILL);} else if (retVal 0){int i 0;//will not ever get to 15, because//the parent process will kill itwhile(i 15){printf(In the child process.\n);sleep(1);}} else {//something bad happened.printf(Something bad happened.);exit(EXIT_FAILURE);}return 0;}tkill(2) 遵循 Linux 1.库 标准 c 库libc, -lc 2.接口定义 #include signal.h /* Definition of SIG* constants */#include sys/syscall.h /* Definition of SYS_* constants */#include unistd.h[[deprecated]] int syscall(SYS_tkill, pid_t tid, int sig);#include signal.hint tgkill(pid_t tgid, pid_t tid, int sig);Note: glibc provides no wrapper for tkill(), necessitating theuse of syscall(2). 3.接口描述 tgkill() 向线程组 tgid 中的线程 tid 发送信号 sig。相反kill(2) 只能用来向进程线程组发送信号信号会被发送给进程中的任意线程。 tkill() 是 tgkill() 的过时版本。它只允许指定目标线程 ID这会导致线程 ID 回收重新分配时信号发送到错误的线程。尽量避免使用这个系统调用。 这些都是原始系统调用接口只能被线程库内部使用。 4.返回值 一旦成功就会返回 0。失败时会返回 -1具体错误信息通过 errno 来指示。 错误代码如下 EAGAINsig 是实时信号并且达到了 RLIMIT_SIGPENDING 资源限制EAGAINsig 是一个实时信号并且内核内存不足EINVAL线程 ID、线程组 ID或者信号 不合法EPERM权限拒绝。对于需要的权限参考 kill(2)ESRCH指定的进程不存在 5.历史 tkill()         Linux 2.4.19/2.5.4 tgkill()        Linux 2.5.75glibc 2.30 6.注意 对于进程组的解释可以参考 clone(2) 的CLONE_THREAD 描述。
http://www.yutouwan.com/news/395008/

相关文章:

  • 食品销售公司网站制作深圳企业建站程序
  • 邯郸建设局网站网站建设实务课本
  • php做网站不兼容ie8佛山专业做网站的
  • 完整网站开发需要多久免费看电视剧网站2020
  • 论坛网站模板深圳公司注册的服务机构
  • 东莞设计网站服务的公司销售网站建设的短文
  • 网站合作客户网页设计与制作免费模板
  • 重庆专业网站推广流程任县建设局网站
  • 做网站接私活网站建设有哪几种形式
  • 自己做的网站怎么上传网站开发项目预算表
  • 集团网站策划方案青云 wordpress
  • 网站登陆模板下载网站备案 取消接入
  • 网站建设及维护 东营做电商网站要服务器吗
  • 江苏中星建设集团网站新品发布会致辞稿
  • 有网站源码去哪里做全屋家具定制价格表
  • 石家庄做标书的网站小程序免费制作平台360
  • 国内规模大的建站公司牡丹江宣传网
  • 小昆山网站建设免费网站生成软件
  • 流行网站设计手机app免费下载
  • 简单的阿里云建设网站网站开发交付清单
  • 金华网站建设设计做企业官网需要什么条件
  • 网站开发png图标素材海淀网站建设多少钱
  • 58同城做网站的电话网站顶部滑动展示的div层提示效果
  • 常德建设公司网站百度免费安装下载
  • dw网页制作教程个人网站网站开发需要怎么做
  • 西安h5网站建设免费的个人空间建网站
  • 绍兴网站快速排名优化如何把网站加入白名单
  • 怎么创建公司网站电话做网站的推广
  • 综述题建设网站需要几个步骤青色系 网站
  • 构建网站的步骤如何做网站的版块规划