首页
登录 | 注册

进程间通信方式(2)---信号

信号是进程间通信机制中唯一的异步通信机制,是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号可类比处理器收到一个中断请求。

常见信号:

SIGKILL:杀死进程,不能忽略

SIGSTOP:停止一个进程,不能忽略

SIGCHILD:当子进程状态发生改变,内核会向父进程发送此信号,进程默认忽略这个信号

SIGINT:ctrl+c

SIGPIPE:对管道的操作的时候,如果读端不存在,写管道会发送此信号

信号处理方式:

忽略信号 signal(signum,SIG_IGN);

捕捉信号:signal(signum,handler);

默认操作signal(signum,SIG_DFL);

用到的函数:

int kill(pid_t pid , int sigNum);//给指定的进程发送信号

int raise(int sigNum);//给自己发送信号

unsigned int alarm(unsigned int seconds);//设置定时器,定时时间到,内核向进程发送SIGALARM

int pause(void);//调用次函数回引起堵塞,当信号来临,并且设置了捕捉信号是,会将其唤醒,从pause后面开始执行


相关文章

  • System V进程间通信--共享内存
    看完System V共享内存部分后感觉还可以, 但写起程序后就出现很多问题, 有的问题虽然解决了, 但是却不知道其中的原理, 于是请教别人查阅资料最终问题得到解决,感觉自己得到了不少,有必要将自己这阵子学习共享内存时的点滴记录下来, 于是打 ...
  • python学习-进程间通信
    https://www.cnblogs.com/guguobao/p/9398653.html 1 python提供了多种进程通信的方式,主要Queue和Pipe这两种方式,Queue用于多个进程间实现通信,Pipe是两个进程的通信 1.1 ...
  • 现象: linux下C++开发的网络服务器程序,在页面刷新时有时候会出现进程退出的情况.使用gdb调试,发现是系统发送了SIGPIPE信号,导致进程退出的. 规避或解决方法: 最根本的解决办法是提高socket编程recv或send函数的健 ...
  • Perl的优势之一是其有庞大的CPAN库,安装这些库有很多方法. 一.通过专用的模块安装模块来安装模块 优点是可以解决依赖问题, 有三个模块,分别是cpan,cpanp,cpanm. 1. CPAN模块. cpan是一个重量级选手. Red ...
  • 如果不是阿里云的分布式数据库 DRDS 那种多机器集群方案的话: 先考虑表分区 :然后考虑分表 :然后考虑分库. 这个题目是我所经历过的,我做的是GPS应用,早期版本就是选用的关系型数据库Sql Server.当时我选取的方案就是第一种:表 ...
  • .NET程序加壳的基本原理和方式浅析
    .NET程序加壳的基本原理和方式浅析 加壳程序是一种常用的保护应用程序的办法,确切的说是一种加密办法.取名为壳,意思是说这种对程序的保护办法就像植物种子的外壳,咱们运用一段程序将咱们的主程序包裹在其间,不能轻易被其他人看见. 被加壳的程序在 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.012 s.
京ICP备10005923号