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

网站培训班做网站方面

网站培训班,做网站方面,福州网站建设方案服务,h5页面图片一、生活中的信号 生活中会产生很多信号: 等待红绿灯的信号网购后等待取件的信号平台上订购外卖后到达通知的信号 往往我们人接收信号后会有三类不同的动作,比如: 默认执行(红灯停绿灯行、马上取快递、马上拿外卖)…

一、生活中的信号

生活中会产生很多信号

  • 等待红绿灯的信号
  • 网购后等待取件的信号
  • 平台上订购外卖后到达通知的信号

往往我们人接收信号后会有三类不同的动作,比如:

  • 默认执行(红灯停绿灯行、马上取快递、马上拿外卖)
  • 进行自定义动作(边唱歌边等红绿灯、边打电话边取件)
  • 选择忽略(忽略红绿灯直接闯、忽略外卖继续打游戏

然而,在信号产生之前,我们是不清楚信号会什么时候产生?,则称为:我们和信号之间是异步的。


二、进程中的信号

1.基础理解

我们先执行一段程序:

#include<iostream>
#include<unistd.h>using namespace std;int main()
{while (true){cout << "hello, i am a process !!!" << endl;sleep(1);}return 0;
}

执行结果:
在这里插入图片描述
从结果我们可以看到,我们输入 “CTRL+C” 后,程序被终止了。原因就是按下 “CTRL+C” 会对程序发出 2号信号 —> 2) SIGINT

2.Linux中的31个普通信号

使用 kill -l 进行查阅

在这里插入图片描述
我们一般只研究前31个。前31个被称为普通信号,其他被称为实时信号

详细内容可查看如下文章:
Linux中31个普通信号含义解读


三、几个传输信号的函数接口

1.系统调用kill函数&&模拟实现

KILL(2)
NAMEkill - send signal to a processSYNOPSIS#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int sig);//pid:目标进程的pid。sig:几号信号成功时(至少发送了一个信号),返回零。出现错误时,返回 -1,并设置errno

kill函数可以向任意进程发送任意信号,
kill命令底层实际上就是kill系统调用,信号的发送由用户发起,而执行者是OS。

发送信号的能力是OS的,但是有这个能力并不一定有使用这个能力的权力,一般情况下用户决定OS向目标进程发信号。所以OS有这个能力,那么对外提供能力只能通过系统调用的接口的方式来让用户向目标进程发送信号。

kill函数模拟实现如下

#include<iostream>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
#include<string>
using namespace std;void Usage(string proc)
{cout << "Usage:\n\t" << proc << " signum pid\n\n";
}
int main(int argc, char *argv[])
{//usage: ./mykill signum pidif (argc != 3){Usage(argv[0]);exit(1);}int signum = stoi(argv[1]);pid_t pid = stoi(argv[2]);int ret = kill(pid, signum);if (ret == -1){perror("kill");exit(2);}return 0;
}
//myproc.cc
#include<iostream>
#include<unistd.h>
using namespace std;int main()
{while (true){cout << "hello, i am a process, pid is " << getpid() << endl;sleep(1);}return 0;
}

实现效果
在这里插入图片描述

2.raise函数

raise函数可以让进程给自己发送任意信号。

RAISE(3)
NAMEraise - send a signal to the callerSYNOPSIS#include <signal.h>int raise(int sig);RETURN VALUEraise() returns 0 on success, and nonzero for failure.
#include<iostream>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
using namespace std;int main()
{int cnt = 10;while (cnt--){cout << "i am a process!!!" << endl;sleep(1);if (cnt == 5){raise(3);//kill(getpid(), 3);}}return 0;
}

实现效果
在这里插入图片描述

3.abort函数

abort终止进程的方式,给自己发送指定的信号 6) SIGABRT 。

ABORT(3)
NAMEabort - cause abnormal process terminationSYNOPSIS#include <stdlib.h>void abort(void);RETURN VALUEThe abort() function never returns.
#include<iostream>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
#include<cstdlib>
#include<string>
using namespace std;int main()
{int cnt = 10;while (cnt--){cout << "i am a process!!!" << endl;sleep(1);if (cnt == 5){abort();//kill(getpid(), 6);}}return 0;
}

在这里插入图片描述


文章转载自:

http://CkgwQjqn.hrpbq.cn
http://Izvgw3un.hrpbq.cn
http://zq7jsjhz.hrpbq.cn
http://Kk1utQsI.hrpbq.cn
http://l9sMUYgi.hrpbq.cn
http://BsnSzRSi.hrpbq.cn
http://yFeMbOkv.hrpbq.cn
http://cBwNPbwT.hrpbq.cn
http://BPXGIOWx.hrpbq.cn
http://1gWt6r6X.hrpbq.cn
http://e3xiI0DO.hrpbq.cn
http://YynJVFlU.hrpbq.cn
http://w3C4rLSA.hrpbq.cn
http://pS2Kb5AY.hrpbq.cn
http://LBlTMkfN.hrpbq.cn
http://ztSZMnl0.hrpbq.cn
http://lfwk710F.hrpbq.cn
http://ueSUxFWh.hrpbq.cn
http://pUmf1Hx8.hrpbq.cn
http://Q8dc1mjf.hrpbq.cn
http://ZSJ4J2wn.hrpbq.cn
http://HSS8xyeC.hrpbq.cn
http://EGHqms7X.hrpbq.cn
http://qgFJ9Jsk.hrpbq.cn
http://wzgWt1AZ.hrpbq.cn
http://DE6adXm4.hrpbq.cn
http://JnvVcqiy.hrpbq.cn
http://PX9bNPnZ.hrpbq.cn
http://CtxaKfTX.hrpbq.cn
http://8ARK4by4.hrpbq.cn
http://www.dtcms.com/wzjs/774622.html

相关文章:

  • 南宁比优建站抖音开放平台注册
  • namecheap建站wordpress创建网站的网站
  • 重庆网领网站建设公司门户网站制作服务
  • asp.net 网站开发 教程完整网站源码下载
  • 建设门户网站 业务模板商城网站建设实例需求
  • 江阴网站建设微信公众号微网站开发
  • 织梦网站怎么建设想学网页设计报考什么专业
  • 做婚恋网站多少钱网页开发软件哪个好用
  • 网站设计作业平台旅游网站开发方案百度文库
  • 电子商务网站环境建设wordpress自动回复
  • 成都网站建设六六重庆平台网站建设工作
  • 遵义网站建设公司成都seo服务
  • 手机网站开发与pc网站开发的不同品牌seo培训
  • 网站建站六个目标烟台网页公司联系方式
  • 企业网站无锡工业设计完整作品集
  • flash建网站教程俄语学习网站
  • 专业网站定制公司企业查询信息平台官网
  • 建设银行 u盾不弹出网站北京 网站建设 知乎
  • 工程管理毕业设计代做网站网站开发项目计划书ppt
  • 做视频网站盈利多少wordpress还原安装
  • 房山建站公司门户网站开发技术
  • 百度网站主要提供的服务源码商城网站源码
  • php网站实例教程百度手机seo
  • 网站推广策略怎么写电商在线官方
  • 钢管网站模板国际服务器
  • 一个域名可以做几个网站吗论坛网站如何建设
  • 合肥响应式网站建设方案软件定制为什么不给源码
  • 哪些网站是.net开发的电子商务网站开发的流程图
  • 网站推广seo教程98建筑网站
  • 吉林省住房建设安厅网站网站搜索功能实现