当前位置: 首页 > 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.hrbkazy.com/news/24792.html

相关文章:

  • 海口网站建设公司seo策略有哪些
  • 深圳服务好的网站建设百度网站链接
  • 开个淘宝店做网站设计好吗链接检测工具
  • 企业加盟网站建设cps广告联盟平台
  • 看一个网站是哪里做的百度推广怎么操作
  • 番禺网站制作技术爱站网 关键词挖掘
  • 众讯 网站建设网站建设公司哪家好
  • 网站关键词优化seo关键词之间最好用逗号网上营销型网站
  • 建筑工程公司名字seo自然优化排名
  • 寿光市住房和建设局网站seo实战培训学校
  • 怎样做自己的 优惠卷网站b站推广入口在哪
  • 亚马逊企业网站建设什么文案容易上热门
  • 江西省宜春市建设局网站西安疫情最新数据
  • 北海哪家做网站今日新闻最新头条10条
  • 长春公司网站建设苏州疫情最新消息
  • 盐城做网站海外推广营销平台
  • 蚌埠 网站制作淘宝指数转换
  • 网站开发成本会计分录公司广告推广方案
  • 慈溪做网站什么价怎么推广产品
  • 江西省大余县建设局网站哪里可以做
  • 企业所得税优惠政策最新2023上海搜索引擎内部优化
  • 营销网站建设网站制作公司免费搜索引擎入口
  • 深圳婚纱摄影网站建设百度大数据查询怎么用
  • 邢台网站建设哪里有今日大事件新闻
  • 自己建立公司网站什么是百度推广
  • 网站开发的背景ping站长工具
  • 自己做网站要会什么软件营销型网站建站
  • 网站添加微信支付陕西整站关键词自然排名优化
  • 免费给别人开发网站常见的微信营销方式有哪些
  • 西安360免费做网站外贸网站建设推广公司