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

移动端h5网站开发框架北京网络科技有限公司

移动端h5网站开发框架,北京网络科技有限公司,语言文字建设网站,如何自建网站接广告学习分享 1、信号的基本概念2、查看信号列表3、常见信号名称4、signal库函数5、发送信号kill6、kill - signal #xff08;无参信号#xff09;示例6.1、kill - signal (不可靠信号)示例6.2、kill - signal (可靠信号)示例 7、信号分类7.1、信号运行原理分类7.2、信号是否携带… 学习分享 1、信号的基本概念2、查看信号列表3、常见信号名称4、signal库函数5、发送信号kill6、kill - signal 无参信号示例6.1、kill - signal (不可靠信号)示例6.2、kill - signal (可靠信号)示例 7、信号分类7.1、信号运行原理分类7.2、信号是否携带数据分类 8、sigaction库函数9、sigqueue库函数10、sigaction - sigqueue带参信号示例11、屏蔽信号11.1、信号集操作函数11.2、sigprocmask函数11.3、屏蔽信号示例 12、信号冲突12.1、信号冲突示例12.2、信号冲突解决方案示例 1、信号的基本概念 信号是UNIX系统响应某些状况而产生的事件进程在接收到信号时会采取相应的行动。 信号是因为某些错误条件而产生的比如内存段冲突、浮点处理器错误或者非法指令等 它们由shell和终端管理器产生以引起中断。 进程可以生成信号、捕捉并响应信号或屏蔽信号 2、查看信号列表 使用命令kill -l 查看信号列表 CTRLC 就是向进程发送2号信号 1-31为系统信号34-64为扩展信号提供开发人员使用 3、常见信号名称 信号的名称是在头文件 signal.h里定义的 SIGUSR1 和SIGUSR2没有任何含义由开发人员自由定义 4、signal库函数 类型QT中的connect 5、发送信号kill 类似QT中的emit 6、kill - signal 无参信号示例 #include iostream #include unistd.h #include signal.h using namespace std;void signal_function(int num)/信号处理函数 {coutpid getpid()信号处理函数被触发endl; } int main() {//信号的注册绑定signal(SIGUSR1,signal_funcion);pid_t pid fork();if(pid0){//父进程sleep(5);//发送信号kill(pid,SIGUSR1);while(1){}}else {//子进程while(1){cout子进程pid getpid()endl;sleep(1);}}return 0; }6.1、kill - signal (不可靠信号)示例 1-31为不可靠信号连续发送多次响应1次。不会连续触发处理函数调用但是间隔发送就会挨个处理。带有操作系统分配的特殊含义 #include iostream #include unistd.h #include signal.h using namespace std;void signal_function(int num)/信号处理函数 {coutpid getpid()信号处理函数被触发endl; } int main() {//信号的注册绑定signal(SIGUSR1,signal_funcion);pid_t pid fork();if(pid0){//父进程sleep(5);for(int i0;i3;i){couti iendl; //发送信号kill(pid,SIGUSR1);sleep(1);}while(1){}}else {//子进程while(1){cout子进程pid getpid()endl;sleep(1);}}return 0; }6.2、kill - signal (可靠信号)示例 34-64为可靠信号连续发送会连续触发处理函数调用 #include iostream #include unistd.h #include signal.h using namespace std;void signal_function(int num)/信号处理函数 {coutpid getpid()信号处理函数被触发endl; } int main() {//信号的注册绑定signal(SIGUSR1,signal_funcion);pid_t pid fork();if(pid0){//父进程sleep(5);for(int i0;i3;i){couti iendl; //发送信号kill(pid,SIGRTMIN);}while(1){}}else {//子进程while(1){cout子进程pid getpid()endl;sleep(1);}}return 0; }7、信号分类 7.1、信号运行原理分类 1-31不可靠信号连续发送不会连续触发处理函数调用但是间隔发送就会挨个处理带有操作系统分配的特殊含义34-64可靠信号连续发送会连续触发处理函数调用 7.2、信号是否携带数据分类 1、无参信号signal - kill 2、携带参数信号 sigaction - sigqueue 8、sigaction库函数 Linux中查看函数详情命令man sigaction 9、sigqueue库函数 Linux中查看函数详情命令man sigqueue 10、sigaction - sigqueue带参信号示例 #include iostream #include unistd.h #include signal.h using namespace std;void sigaction_fuction(int num,siginfo_t* info, void*vo) //num指信号编号 {int res info-si_int;coutpid getpid()信号处理函数被触发 resresendl; } int main() {struct sigaction act;act.sa_sigaction sigaction_function://带参信号处理函数act.sa_flags SA_SIGINFO;//当前信号带参数sigction(SIGUSR1,act,NULL);//带参信号的绑定pid_t pid fork();if(pid0){//父进程sleep(5);//带参信号发送union sigval val;//联合体val.sival_int 1001;sigqueue(pid,SIGUSR1,val);while(1){}}else {//子进程while(1){cout子进程pid getpid()endl;sleep(1);}}return 0; }11、屏蔽信号 11.1、信号集操作函数 11.2、sigprocmask函数 11.3、屏蔽信号示例 #include iostream #include unistd.h #include signal.h #include stdio.h using namespace std; void sigaction_fuction(int num,siginfo_t* info, void*vo) //num指信号编号 {int res info-si_int;coutpid getpid()信号处理函数被触发 resresendl; } int main() {struct sigaction act;act.sa_sigaction sigaction_function://带参信号处理函数act.sa_flags SA_SIGINFO;//当前信号带参数sigction(SIGUSR1,act,NULL);//带参信号的绑定pid_t pid fork();if(pid0){//父进程sleep(5);//带参信号发送union sigval val;//联合体val.sival_int 1001;sigqueue(pid,SIGUSR1,val);while(1){}}else {//子进程//屏蔽信号//创建信号集sigset_t array;//初始化信号集sigemptyset(array);//添加需要屏蔽的信号sigaddset(array,SIGUSR1);sigaddset(array,SIGUSR2);//启用信号“黑名单”if(sigprocmask(SIG_BLOCK,array,NULL)0){perror(sigprocmask error);}while(1){cout子进程pid getpid()endl;sleep(1);}}return 0; }12、信号冲突 当一个进程接收到一个信号去执行该信号的处理函数但是信号处理函数还没执行完就收到另一个信号。 12.1、信号冲突示例 #include iostream #include unistd.h #include signal.h #include stdio.h using namespace std; void test1(int num) {couttest1开始运行endl;sleep(30);couttest1结束运行endl; } void test2(int num) {couttest2 运行 .....endll; } int main() {struct sigaction act1;act.sa_sigaction test1:act1.flags 0;//无参信号struct sigaction act2;act.sa_sigaction test2;act2.flags 0;//无参信号sigction(SIGUSR1,act1,NULL);sigction(SIGUSR2,act2,NULL);while(1){cout进程pid getpid()endl;sleep(1);}return 0; }12.2、信号冲突解决方案示例 #include iostream #include unistd.h #include signal.h #include stdio.h using namespace std; void test1(int num) {couttest1开始运行endl;sleep(30);couttest1结束运行endl; } void test2(int num) {couttest2 运行 .....endll; } int main() {struct sigaction act1;act.sa_sigaction test1:act1.flags 0;//无参信号struct sigaction act2;act.sa_sigaction test2;act2.flags 0;//无参信号//信号1在处理时不希望信号2来打扰//所以在信号1的struct sigaction结构体中拉黑了信号2sigemptyset((act1.sa_mask));//将act1.sa_mask设置为空信号集。//将SIGUSR2信号添加到act1.sa_mask中。sa_mask成员用于指定在执行信号处理函数时需要阻塞的信号集合。sigaddset((act1.sa_mask),SIGUSR2);sigction(SIGUSR1,act1,NULL);sigction(SIGUSR2,act2,NULL);while(1){cout进程pid getpid()endl;sleep(1);}return 0; }
http://www.dnsts.com.cn/news/109785.html

相关文章:

  • 郑州哪里做网站网站制作公司教你怎么制作网站
  • 北京html5网站建设怎么做页码
  • 苏州吴中网站建设公司为网站添加isapi扩展
  • 如何修复网站中的死链东南亚vps
  • 电影网站模板html网站首页空白 wordpress
  • 有哪些比较好的外贸网站百度搜索引擎推广收费标准
  • 坪山网站建设服务短网址生成功能
  • 大连比较好的网站公司全国做旅游开发的公司
  • 电脑维护网站模板做行业导航网站好
  • 网站后台怎么用代理注册企业登记
  • 购物网站项目开发做网站放广告收益
  • 精品网站建设费用 干净磐石网络旅行社手机网站建设方案
  • 莱芜网站建设方案公司中国行业研究报告网
  • 网站建设 网页设计 的文章网站制作的流程包括
  • 厦门公司注册网站移动端网站设计欣赏
  • 旅行社门店做网站嘛wordpress 主题 定制
  • 手机网站源码精准营销通俗来说是什么
  • jsp mysql 网站开发上海优化seo
  • 石家庄网站建设销售电话网络营销策划推广公司一一
  • 沈阳自助模板建站长沙包装设计公司排名
  • 温州高端网站定制綦江网站建设公司
  • python做网站前端济南建设局
  • 新房地产网站开发wordpress点击图片直接相册浏览器
  • 北京网络公司网站南通公司建站模板
  • 网站开发和运行模式的搭建惠州惠城区建设网站
  • 京东商城网站特色python 网站开发
  • 哪些网站做魔兽地图腾讯广告
  • 开阿里巴巴网站建设流程域名网址
  • 家居网站建设策划东莞常平有高铁站吗
  • 建设网站实训报告杭州蒙特网站建设