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

做网站电销话术百度在西安的公司叫什么

做网站电销话术,百度在西安的公司叫什么,网站支付宝怎么做,武汉网站建设平台文章目录 前言一、相关函数/系统调用1. signal2. kill3. abort (库函数)4. raise (库函数)5. alarm 前言 现实生活中, 存在着诸多信号, 比如红绿灯, 上下课铃声…我们在接收到信号时, 就会做出相应的动作. 对于进程也是如此的, 进程也会收到来自 OS 发出的信号, 根据信号的不同…

文章目录

  • 前言
  • 一、相关函数/系统调用
    • 1. signal
    • 2. kill
    • 3. abort (库函数)
    • 4. raise (库函数)
    • 5. alarm


前言

现实生活中, 存在着诸多信号, 比如红绿灯, 上下课铃声…我们在接收到信号时, 就会做出相应的动作. 对于进程也是如此的, 进程也会收到来自 OS 发出的信号, 根据信号的不同也会做出不同的动作, 进程在收到信号时也并不一定会立即执行, 也可以在适当的时候在执行该信号对应的动作, 一般信号常见处理方式有如下三种:

  1. 忽略此信号.
  2. 执行该信号的默认处理动作.
  3. 提供一个信号处理函数, 要求内核在处理该信号时切换到用户态执行这个处理函数, 这种方式称为捕捉一个信号.

而在进程中用以保存信号的容器可以是一个位图, 通过 0, 1 来表示是否收到某信号.

在 Linux 中, 可以通过指令:

kill -l

来查看系统定义的信号列表:
在这里插入图片描述
通过指令:

man 7 signal

可以查看关于信号的详细说明:
在这里插入图片描述

在 Linux 中可以通过指令:

kill -信号编号 进程pid

来对指定进程发送指定信号.

一、相关函数/系统调用

1. signal

头文件: #include <signal.h>

函数声明: sighandler_t signal(int signum, sighandler_t handler);

  • signum: 被设置的信号编号.
  • handler: 被设置的信号的新的处理函数, 是一个回调函数, 通过用户传递.
  • sighandler_t: 是一个函数指针, 可以指向一个返回值为 void, 参数为 int 的函数, 以下是系统中的 typedef:
    typedef void (*sighandler_t)(int);

功能: 将指定的信号的处理函数覆盖为 handler.

示例代码:

#include <iostream>
#include <unistd.h>
#include <signal.h>
using namespace std;void sighandler(int signo)
{cout << "void sighandler(int signo): " << signo << endl;
}int main()
{signal(2, sighandler);while(1){cout << "Hello" << endl;sleep(1);}return 0;
}

运行结果:
在这里插入图片描述
实际 Ctrl + C 就是编号为 2 的信号, 平常通过 Ctrl + C 向进程发送 SIGINT(2) 号信号, 可以终止进程, 但是把信号 2 的处理函数换成了自定义的, 所以在终端按下 Ctrl + C 时执行我们自定义的函数.

PS: 9, 18, 19 号信号即时被重定向了新的处理函数也没用, 该信号仍然会执行原本的处理函数.

2. kill

头文件:
#include <sys/types.h>
#include <signal.h>

函数声明: int kill(pid_t pid, int sig);

  • pid: 目标进程pid.
  • sig: 向目标发送的信号编号.

功能: 向指定进程发送指定信号.

示例代码:

#include <iostream>
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
using namespace std;int main()
{for(int i = 0; i < 10; ++i){if(i == 5){kill(getpid(), 9);}cout << i << ":Hello" << endl;sleep(1);}return 0;
}

运行结果:
在这里插入图片描述
在输出 5 条语句后, 向自己发送 9 号信号, 直接终止自己了.

3. abort (库函数)

头文件: #include <stdlib.h>

函数声明: void abort(void);

功能: 向调用进程发送终止信号.

示例代码:

#include <iostream>
#include <cstdlib>
#include <unistd.h>
using namespace std;int main()
{for(int i = 0; i < 10; ++i){if(i == 5){abort();}cout << i << ":Hello" << endl;sleep(1);}return 0;
}

运行结果:
在这里插入图片描述

4. raise (库函数)

头文件: #include <signal.h>

函数声明: int raise(int sig);

  • 返回值: 成功调用返回 0, 失败返回非零整数.
  • sig: 信号编号.

功能: 向调用进程发送指定信号.

示例代码:

#include <iostream>
#include <csignal>
#include <unistd.h>
using namespace std;int main()
{for(int i = 0; i < 10; ++i){if(i == 5){raise(9);}cout << i << ":Hello" << endl;sleep(1);}return 0;
}

运行结果:
在这里插入图片描述

5. alarm

头文件: #include <unistd.h>

函数声明: unsigned int alarm(unsigned int seconds);

  • 返回值: 返回一个无符号整数, 表示前一个闹钟剩于的秒数, 打个比方, 闹钟设置为 30s 后响, 但是在 20s 的时候就收到了 SIGALRM(14) 信号, 此时闹钟会提前响, 返回值就为 30 - 20 = 10.
  • seconds: 多少秒后响铃.

功能: 在过了 seconds 秒以后终止调用进程.

示例代码:

#include <iostream>
#include <unistd.h>
using namespace std;int main()
{alarm(1);for(int i = 0; ; i++){cout << i << ":Hello" << endl;}return 0;
}

运行结果:
在这里插入图片描述
可以看到, 在 1 秒钟后闹钟响了, 进程也就被终止了.

接下来通过另一段代码查看返回值:

#include <iostream>
#include <signal.h>
#include <unistd.h>
using namespace std;void sighandler(int signo)
{cout << "void sighandler(int signo): " << signo << endl;int n = alarm(10);cout << "n: " << n << endl;
}int main()
{cout << "pid:" << getpid() << endl;signal(SIGALRM, sighandler);alarm(10);while(1);return 0;
}

运行结果:
在这里插入图片描述
可以看到, 在闹钟设定后, 以我最快的速度给调用闹钟的进程发送 14 号信号之后, 返回的剩于秒数为 8s, 也就是说闹钟只跑了 2s, 而后又设置了一个 10s 后响的闹钟, 这次没有提前发送 14 号信号, 它正常跑完, 返回的剩于秒数为 0s, 合理.

http://www.yidumall.com/news/16891.html

相关文章:

  • 网站建设流程策划书大数据培训
  • 幼儿园网站建设方案结语网络推广的概念
  • 沈阳三好街做网站公司最新营销模式有哪些
  • 网站建设中 怎么办昆明网络营销公司哪家比较好
  • 服务器ecs可以做网站吗百度快照入口官网
  • 重庆网站推广联系方式seo优化网站推广
  • 公司用员工信息做网站域名备案山东关键词网络推广
  • 做新闻网站犯法吗seo优化啥意思
  • 国外html5做的音乐网站免费写文章的软件
  • 网站制作素材现在做百度推广有用吗
  • 优秀网站首页seo关键词首页排名
  • 如何做网站的逻辑结构图线下推广活动策划方案
  • 网站qq访客获取网址检测
  • 班组建设网站百度推广怎么优化排名
  • 南昌做网站公司com域名注册
  • 网站开发需要学mvc吗宁波建站模板系统
  • 大型门户网站开发案例线下推广方式有哪些
  • wordpress 用户信息修改seo产品推广
  • 婚纱摄影网站模板源码谷歌推广怎么样
  • 在线网站推荐几个百度搜索怎么优化
  • 建设企业资质双网是哪两个网站人力资源和社会保障部
  • 辽宁建设厅勘察设计网站长沙网络营销公司排名
  • 万盛经开区建设局官方网站名词解释seo
  • 网页线上开发制作seo优化6个实用技巧
  • 检查网站的跳转路径是否清晰 哪里要优化杭州免费网站制作
  • 简单官网模板seo同行网站
  • wordpress菜单栏插件北京seo地址
  • 怎么做自己的网购网站谷歌搜索引擎镜像入口
  • 建设网站号码北京百度推广公司
  • 成都 网站建设培训网站seo推广平台