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

枣庄建网站网站建设与推广工资

枣庄建网站,网站建设与推广工资,郑州发布直播,佛山市城市建设工程有限公司文章目录 前言一、中断#xff0c;异常#xff0c;信号的区别二、信号在Linux中的标识三、信号处理相关函数四、代码实验总结 前言 本篇文章我们来讲解信号的处理机制#xff0c;信号处理在Linux操作系统中必不可少#xff0c;这一点值得大家注意#xff0c;信号又会与中… 文章目录 前言一、中断异常信号的区别二、信号在Linux中的标识三、信号处理相关函数四、代码实验总结 前言 本篇文章我们来讲解信号的处理机制信号处理在Linux操作系统中必不可少这一点值得大家注意信号又会与中断异常一起讨论那么下面我们就来看看到底什么是信号吧。 一、中断异常信号的区别 中断、异常和信号是计算机系统中的三个相关但不完全相同的概念。它们在发生的时机、触发方式和处理机制上有所不同。 中断Interrupt 1.中断是由硬件发出的一种信号用于打断处理器当前的执行流程以响应特定的硬件事件或请求。 2.中断可以来自外部设备例如键盘、鼠标、硬盘控制器或系统内部例如定时器、异常或错误。 3.当发生中断时处理器会暂停当前的执行并切换到中断处理程序来处理中断事件然后在处理完中断后回到原来的执行上下文。 异常Exception 1.异常是在程序执行期间发生的事件或错误条件可能导致程序的正常流程中断。 2.异常可以是由硬件错误例如除零错误、无效的内存访问或软件错误例如逻辑错误、非法操作触发的错误情况。 3.异常通常是同步的也就是说它们在执行特定的指令时发生并由程序自身或相关硬件直接处理。 4.异常的处理方式通常由编程语言、操作系统或硬件定义可以通过异常处理机制例如 try-catch 块捕获和处理。 信号Signal 1.信号是一种在软件层面上由操作系统或进程间通信机制发送的异步通知。 2.信号可以用于通知进程发生的特定事件如用户操作例如按下 CtrlC操作系统事件例如进程终止或由其他进程发送的消息。 3.信号是在进程执行期间以异步方式发出的可以打断当前的执行流程。 4.信号通常用于处理外部事件或异常情况例如捕获异常终止进程或重新启动进程等。 总结 1.中断是由硬件发出的打断处理器当前执行流程的信号用于响应硬件事件。 2.异常是在程序执行期间发生的事件或错误条件用于响应特定的错误情况。 3.信号是在软件层面上由操作系统或进程间通信机制发送的异步通知用于处理外部事件或异常情况。 它们在触发方式、处理机制和使用场景上有所不同但都可以用于在计算机系统中处理特定的事件、错误和异常情况。 二、信号在Linux中的标识 每个信号都由一个唯一的数字标识符来表示这些数字被称为信号编号。 信号编号是整数值通常用正整数来表示例如SIGINT、SIGTERM等。这些信号编号定义在系统头文件 signal.h 中并在C语言中使用 SIG 前缀。 以下是一些常见的信号编号及其含义 SIGHUP (1): 终端挂起或控制进程终止。 SIGINT (2): 使用键盘输入的中断信号。 SIGQUIT (3): 使用键盘输入的退出信号。 SIGILL (4): 非法指令。 SIGABRT (6): 异常终止。 SIGFPE (8): 浮点异常。 SIGKILL (9): 强制进程终止。 SIGALRM (14): 闹钟超时。 SIGTERM (15): 终止请求。 三、信号处理相关函数 signal()函数原型 void (*signal(int signum, void (*handler)(int)))(int)功能signal() 函数用于注册信号处理函数指定在接收到特定信号时要执行的操作。 参数 signum要捕获和处理的信号编号。 handler指向信号处理函数的指针可以是自定义函数或内置的信号处理函数。 返回值返回一个函数指针指向以前注册的信号处理函数。 raise()函数原型 int raise(int sig)功能raise() 函数用于在当前进程内部生成信号。它向当前进程发送指定的信号。 参数 sig要发送的信号编号。 返回值成功时返回0否则返回一个非零值。 kill()函数原型 int kill(pid_t pid, int sig)功能kill() 函数用于向指定进程或进程组发送信号。 参数 pid要发送信号的进程的进程IDPID。可以是正整数值表示单个进程的PID也可以是负整数值表示进程组的PID将信号发送给该进程组中的所有进程。 sig要发送的信号编号。 返回值成功时返回0否则返回一个非零值。 这些函数可以一起使用来进行信号的处理。首先使用 signal() 函数注册信号处理函数指定接收到特定信号时要执行的操作。然后可以使用 raise() 函数在当前进程中生成信号或使用 kill() 函数向其他进程发送信号。 需要注意的是不同的信号有不同的含义和用途。要正确使用信号处理函数和相关函数需要了解不同的信号及其处理方式。可以通过查阅相关文档或系统头文件 signal.h 了解所有可用的信号及其意义。 四、代码实验 #include signal.h #include stdio.h #include unistd.hvoid signal_handle(int sig) {printf(sig %d\n, sig); }int main(void) {signal(SIGINT, signal_handle);while(1){sleep(1);}return 0; }执行效果 按下ctrl加c后被信号处理函数捕捉到了并且打印了信号的数值。 下面的代码演示了怎么样使用信号进行线程之间通信。 #include signal.h #include stdio.h #include unistd.hvoid signal_handle(int sig) {printf(sig %d\n, sig); }int main(void) {signal(40, signal_handle);while(1){sleep(1);}return 0; }#include signal.h #include stdio.h #include unistd.h #include sys/types.h #include stdlib.hint main(int argc, char** argv) {pid_t pid atoi(argv[1]);kill(pid, 40);raise(SIGINT);while(1){sleep(1);}return 0; } 总结 本篇文章就讲解到这里大家看完后可以好好实验一下。
http://www.pierceye.com/news/789858/

相关文章:

  • 建管家企业网站discuz仿wordpress
  • 老网站不要了做新站需要怎么处理平面广告设计赏析
  • 怎么看网站是不是php语言做的网站系统优点
  • 旅游网站建设 策划书销售app哪个好用
  • 建个大型网站要多少钱wordpress页眉设置
  • 浅谈网站建设开发浙江中联建设集团网站
  • 哪有做网站全包圆装修公司
  • 邵阳建设银行网站是多少建设银行 企业
  • 网站开源系统网页制作与网站建设思维导图
  • 专门做前端项目的一些网站wordpress 朋友圈插件
  • 网站建设哪家专业网站开发费用怎么做账
  • 用dw怎么做网站首页wordpress 文章页面失败
  • 郑州网站制作专业乐云seowordpress it博客主题
  • 支付宝手机网站支付二维码怎么做网站 开发
  • 教育网站制作视频代理网址ag80hncom
  • 泰兴公司做网站建设制作外贸网站公司
  • 手机wap网站大全作品提示优化要删吗
  • 郑州网站建设技术支持云南澄江县建设局网站
  • wordpress建企业网站设置网站一级域名和二级域名
  • 云南省城乡与住房建设厅网站合肥网红打卡地
  • 用dw做的企业网站宁波seo优化费用
  • 网站制作开发建网站公司 蓝纤科技
  • 怎样到国外做合法网站法网站网站建设小组实验报告
  • DNF做钓鱼网站网站建设方案书编写
  • 提高网站粘性wordpress tag中文
  • 公司已有网站 如何自己做推广wordpress的音乐插件怎么用
  • 权威网站php wordpress 等
  • 建设网站企业公司中通建设计院第四分公司网站
  • 快站免费网站建设哪家好南宁市住房建设局网站
  • 学生做的网站成品roseonly企业网站优化