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

公司网站建设推荐百度引擎

公司网站建设推荐,百度引擎,四站合一网站建设价格,深圳门户网站建设main 信号捕捉的操作 sigaction struct sigaction OS不允许信号处理方法进行嵌套:某一个信号正在被处理时,OS会自动block改信号,之后会自动恢复 同理,sigaction.sa_mask 为捕捉指定信号后临时屏蔽的表 pending什么时候清零&…

main

信号捕捉的操作

sigaction

struct sigaction

OS不允许信号处理方法进行嵌套:某一个信号正在被处理时,OS会自动block改信号,之后会自动恢复

同理,sigaction.sa_mask 为捕捉指定信号后临时屏蔽的表

pending什么时候清零:调用handler前就清零,否则不能判断handler期间是否收到指定signal

可重入函数

问题:

一个函数,被两个以上的执行流进入了--重入

出问题了--不可重入函数

没出问题--可重入函数

如何判断可/不可重入

有全部资源:不可重入

全是局部:可

大部分都不可

函数名后带_r:可

volatile

关键字(异变关键字)

防止优化,保证每次从内存读取改变量,保证内存可见性。

因为常用与修饰容易改变的变量,所以叫做异变关键字

// 易变关键字
volatile int flag = 0;void change(int signo) // 信号捕捉的执行流
{(void)signo;flag = 1;printf("change flag 0->1, getpid: %d\n", getpid());
}int main()
{printf("I am main process, pid is : %d\n", getpid());signal(2, change);while(!flag); // 主执行流--- flag我们没有做任何修改!printf("我是正常退出的!\n");
}

0没有优化

1-3优化

 

为什么优化后不会退出

register 直接把一变量放到寄存器,不用每次从内存读取

信号流改变flag,只改变内存flag,对寄存器没有影响

所有的关键字都是给编译器看的,

SIGCHLD

子进程退出时,会给父进程发送SIGCHLD信号

code

// #include <iostream>
#include <stdio.h>
#include <signal.h>
#include <unistd.h>// 易变关键字
volatile int flag = 0;void change(int signo) // 信号捕捉的执行流
{(void)signo;flag = 1;printf("change flag 0->1, getpid: %d\n", getpid());
}int main()
{printf("I am main process, pid is : %d\n", getpid());signal(2, change);while(!flag); // 主执行流--- flag我们没有做任何修改!printf("我是正常退出的!\n");
}// // printBLocklist
// void PirintBLock()
// {
//     sigset_t set, oset;
//     sigemptyset(&set);
//     sigemptyset(&oset);//     sigprocmask(SIG_BLOCK, &set, &oset);
//     std::cout << "block: ";
//     for (int signo = 31; signo > 0; signo--)
//     {
//         if (sigismember(&oset, signo))
//         {
//             std::cout << 1;
//         }
//         else
//         {
//             std::cout << 0;
//         }
//     }
//     std::cout << std::endl;
// }// void PrintPending()
// {
//     sigset_t pending;
//     ::sigpending(&pending);//     std::cout << "Pending: ";
//     for (int signo = 31; signo > 0; signo--)
//     {
//         if (sigismember(&pending, signo))
//         {
//             std::cout << 1;
//         }
//         else
//         {
//             std::cout << 0;
//         }
//     }
//     std::cout << std::endl;
// }// void handler(int signo)
// {
//     static int cnt = 0;
//     cnt++;
//     while (true)
//     {
//         std::cout << "get a sig: " << signo << ", cnt: " << cnt << std::endl;
//         // PirintBLock();
//         PrintPending();
//         sleep(1);
//         // break;
//     }
//     // exit(1);
// }// int main()
// {
//     struct sigaction act, oact;
//     act.sa_handler = handler;
//     sigemptyset(&act.sa_mask);
//     sigaddset(&act.sa_mask, 3);
//     sigaddset(&act.sa_mask, 4);
//     sigaddset(&act.sa_mask, 5);
//     sigaddset(&act.sa_mask, 6);
//     sigaddset(&act.sa_mask, 7);//     ::sigaction(2, &act, &oact);//     while (true)
//     {
//         // PirintBLock();
//         PrintPending();
//         pause();
//     }
// }

板书笔记:

http://www.tj-hxxt.cn/news/31590.html

相关文章:

  • 随州网站制作怎么自己制作一个网站
  • wordpress有商城吗网页优化seo广州
  • 和国外做贸易用什么网站网络营销策划推广方案
  • 注册过哪些网站网络营销推广手段
  • 做网站真实收益网络营销公司有哪些公司
  • 搞黄色网站做牢思亿欧seo靠谱吗
  • 网站美工做专题尺寸多少?网站优化资源
  • 广东网站开发哪家强网店代运营公司
  • 装备可以卖人民币的手游免费seo在线工具
  • 网站开发 思维导图百度经验官网登录
  • apico云开发平台广州搜索seo网站优化
  • 用php做网站流程数据分析
  • 中国菲律宾冲突北京搜索引擎优化seo
  • wordpress发布网站seo数据分析哪些方面
  • 兰州市规划建设局网站新东方在线网上课程
  • wordpress 子域名关键词seo深圳
  • 做特卖网站手机版品牌推广的概念
  • 电商运营转行后悔了优化网站排名方法教程
  • 织梦可以做哪些类型型网站上海外贸网站seo
  • 网站短信验证码接口怎么做百度云资源搜索
  • wordpress 多站点 主题可以免费网络推广网站
  • 红色色系做网站的配色互联网销售是做什么的
  • 做原创短视频网站搜索引擎关键词的工具
  • 许昌市住房和城乡建设厅网站优化大师app下载
  • 苍南网站建设shaoky凡科建站官网
  • 莆田网站建设方案服务my77728域名查询
  • 网站建设排期dz论坛如何seo
  • 地名网站建设方案百度联盟app
  • 南昌做网站公司有哪些国家市场监管总局官网
  • 设计排版优秀网站站长工具权重查询