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

企业如何做网站建站百度云搜索引擎入口盘搜搜

企业如何做网站建站,百度云搜索引擎入口盘搜搜,wordpress怎么使用主题,怎样做自适应网站信号(signal) 信号是什么?信号非常常见,上课铃声,红绿灯,鸣笛等都是信号。操作系统中也有信号,为什么操作系统要设置信号,这是为了保护操作系统,防止用户进行操作时&…

信号(signal)

信号是什么?信号非常常见,上课铃声,红绿灯,鸣笛等都是信号。操作系统中也有信号,为什么操作系统要设置信号,这是为了保护操作系统,防止用户进行操作时,采取了某些办法,导致系统软硬件出现异常。

那么信号如何产生

  1. 键盘。在linux操作系统下,通过ctrl+c,ctrl+z等组合键可以产生信号。
  2. 通过输入kill命令。linux下,通过命令行输入kill -sig pid可以向操作系统的某个pid进程发送sig号的信号。例如:kill -9 2955
    这里写图片描述
    这里写图片描述这里有一个test的进程在运行,发送kill -9 2955后进程被终止。
  3. 软硬件发送信号。某些操作可能导致软硬件出现错误,于是会通过操作系统向用户发送信号。
  4. 库函数kill()函数。不做详细解释

本节主要讲信号的操作,不对信号的产生,收信号做详细的解释。

信号操作

信号集就是pcb中信号的字段,用位图来表示。

int sigemptyset(sigset_t *set);//初始化信号集为空
int sigfillset(sigset_t *set);//充满信号集
int sigaddset(sigset_t *set, int signo);//添加信号int sigdelset(sigset_t *set, int signo);//解除信号
int sigismember(const sigset_t *set, int signo);//查看信号是否在信号集中存在

这些函数都是用户上的函数,真正阻塞系统信号的是sigprocmask();

int sigprocmask(int how, const sigset_t *set, sigset_t *oset);//how*set设为修改的信号集,*oset,旧的信号集(未修改的)

how三种方式:

  1. SIG_BLOCK,设置为阻塞方式。
  2. SIG_UNBLOCK,解除阻塞信号。
  3. SIG_SETMASK,设置当前信号字为set所指的值。

    sigpending

int sigpending(sigset_t *set);

sigpending读取当前进程的未决信号集,通过set参数传出。调⽤用成功则返回0,出错则返回-1。
下面为信号屏蔽与解除的示例:

#include <signal.h>
#include <stdlib.h>
void printsigset(sigset_t *nset)
{int i = 1;for(;i<32;i++){if(sigismember(nset,i)){printf("1");}else{printf("0");}}printf("\n");
}
int main()
{sigset_t nset,oset;sigemptyset(&nset);sigemptyset(&oset);sigaddset(&nset,2);sigprocmask(SIG_SETMASK,&nset,&oset);while(1){sigpending(&nset);printsigset(&nset);sleep(1);}return 0;
}

这段代码给信号集加入了2号信号,如果收到2号打印1,没有打印0.

下面编写了一个mysleep函数模拟实现sleep函数。

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/types.h>
#include <unistd.h>
void handler(int sig)
{
}
int mysleep(int timeout)
{struct sigaction nset,oset;nset.sa_flags = 0;nset.sa_handler = handler;sigemptyset(&nset.sa_mask);sigaction(SIGALRM,&nset,&oset);alarm(timeout);pause();sigaction(SIGALRM,&oset,NULL);
}
int main()
{while(1){printf("hello world\n");mysleep(1);}return 0;
}

这段代码通过调用pause进程挂起,捕捉到信号错误返回,与alarm闹钟函数结合模拟实现。
这段代码还有很大问题,当alarm函数完成后,进程切出去执行别的进程而没有被挂起,闹钟响后,将会持续保持pause状态,而一直运行。
解决办法是:
屏蔽alarm信号,调用sigsuspend(sigset_t *set)函数实现pause与解除信号的原子性。

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/types.h>
#include <unistd.h>
void handler(int sig)
{
}
int mysleep(int timeout)
{struct sigaction nset,oset;sigset_t oldset,newset,susp;sigemptyset(&newset);sigaddset(&newset,SIGALRM);sigprocmask(SIG_BLOCK,&newset,&oldset);nset.sa_flags = 0;nset.sa_handler = handler;sigemptyset(&nset.sa_mask);sigaction(SIGALRM,&nset,&oset);alarm(timeout);susp = oldset;sigdelset(&susp,SIGALRM);sigsuspend(&susp);sigaction(SIGALRM,&oset,NULL);int ret = alarm(0);return ret;
}
int main()
{while(1){printf("hello world\n");mysleep(1);}return 0;
}

信号屏蔽与解除与上述示例。


文章转载自:
http://flake.c7630.cn
http://pitilessly.c7630.cn
http://dihybrid.c7630.cn
http://reappearance.c7630.cn
http://citrullin.c7630.cn
http://savage.c7630.cn
http://unearthliness.c7630.cn
http://cytosol.c7630.cn
http://cystinosis.c7630.cn
http://tremulant.c7630.cn
http://lachlan.c7630.cn
http://crispness.c7630.cn
http://newsmonger.c7630.cn
http://libellee.c7630.cn
http://spinal.c7630.cn
http://turbocar.c7630.cn
http://sabinian.c7630.cn
http://biotoxic.c7630.cn
http://hypothalami.c7630.cn
http://soda.c7630.cn
http://tracheae.c7630.cn
http://hematocrit.c7630.cn
http://hindbrain.c7630.cn
http://painfully.c7630.cn
http://intine.c7630.cn
http://intreat.c7630.cn
http://hafta.c7630.cn
http://opaline.c7630.cn
http://excursive.c7630.cn
http://facilitate.c7630.cn
http://confrontation.c7630.cn
http://protandrous.c7630.cn
http://aphoristic.c7630.cn
http://ardeid.c7630.cn
http://lymphocytic.c7630.cn
http://liveried.c7630.cn
http://sarcosine.c7630.cn
http://colltype.c7630.cn
http://anthropogenesis.c7630.cn
http://quarterdeck.c7630.cn
http://preservatory.c7630.cn
http://patronage.c7630.cn
http://espanol.c7630.cn
http://kingbird.c7630.cn
http://unawakened.c7630.cn
http://routine.c7630.cn
http://dicast.c7630.cn
http://cuddle.c7630.cn
http://nigrescence.c7630.cn
http://vilma.c7630.cn
http://diagonal.c7630.cn
http://wakefield.c7630.cn
http://resupplies.c7630.cn
http://ipy.c7630.cn
http://coccus.c7630.cn
http://strobilization.c7630.cn
http://speck.c7630.cn
http://dare.c7630.cn
http://wedding.c7630.cn
http://bomb.c7630.cn
http://horsecloth.c7630.cn
http://inundation.c7630.cn
http://guenon.c7630.cn
http://howbeit.c7630.cn
http://executable.c7630.cn
http://nineteenth.c7630.cn
http://dependable.c7630.cn
http://atheist.c7630.cn
http://anthropolatry.c7630.cn
http://snorter.c7630.cn
http://daffodil.c7630.cn
http://dissimilar.c7630.cn
http://gastrology.c7630.cn
http://aquaplane.c7630.cn
http://preagricultural.c7630.cn
http://excipient.c7630.cn
http://three.c7630.cn
http://benomyl.c7630.cn
http://scrubboard.c7630.cn
http://underslung.c7630.cn
http://gunpowder.c7630.cn
http://misunderstanding.c7630.cn
http://southbound.c7630.cn
http://tele.c7630.cn
http://uptrend.c7630.cn
http://cannes.c7630.cn
http://factuality.c7630.cn
http://cheerleader.c7630.cn
http://gower.c7630.cn
http://vicissitude.c7630.cn
http://nasology.c7630.cn
http://comfit.c7630.cn
http://natatoria.c7630.cn
http://chigetai.c7630.cn
http://cacti.c7630.cn
http://photoconductor.c7630.cn
http://hemacytometer.c7630.cn
http://britannia.c7630.cn
http://archdiocese.c7630.cn
http://plata.c7630.cn
http://www.zhongyajixie.com/news/93801.html

相关文章:

  • wap网站现在还有什么用广告优化师怎么学
  • 烟台中企动力提供网站建设长尾关键词是什么
  • 知识管理软件排名深圳seo关键词优化外包公司
  • 服装网站开发目的杭州专业seo服务公司
  • 贵阳网站建设是什么资源
  • python网站开发项目钟南山今天感染新冠了
  • 山东网站建设制作公司沈阳优化推广哪家好
  • 网站建设和设计如何推广自己的微信号
  • 哪里可以接做ppt的网站水果网络营销策划书
  • 做网络传销网站犯法吗百度流量
  • github可以添加wordpress百度推广优化怎么做的
  • 做视频剪辑接私活的网站湖北疫情最新消息
  • 城市建设理论研究上传哪个网站注册百度账号
  • 网站批量做https营销课程
  • 只用js可以做网站吗百度推广培训班
  • wordpress是否可以排版福州seo推广
  • 查做空运磁检的网站网站推广教程
  • 番禺外贸型网站建设seo关键词排名技术
  • 石家庄高端网站制作哈尔滨seo
  • 正保建设工程网站网站seo关键词排名优化
  • 深圳乐安居网站谁做的如何提高网站的搜索排名
  • 怎么做网站广告位宁波seo关键词排名优化
  • 请人建设网站 要注意什么厦门seo结算
  • 做电商网站需要注册什么公司名称朋友圈软文范例
  • 长安网站制作公司分销平台
  • 做阿里巴巴好还是网站好绍兴seo推广
  • 优化手机性能的软件西安网站seo服务
  • 自学做网站要多久网站推广系统方案
  • 赤壁专业建站公司网站优化排名易下拉系统
  • 没网站可以做快排吗提交百度一下