第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > linux 进程 signal c/c++ linux 进程间通信系列1 使用signal kill

linux 进程 signal c/c++ linux 进程间通信系列1 使用signal kill

时间:2021-05-18 09:11:21

相关推荐

linux 进程 signal c/c++ linux 进程间通信系列1 使用signal kill

linux 进程间通信系列1,使用signal,kill

信号基本概念: 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。

kill函数的详细说明:kill

信号接收端:

#include

#include

#include //write function

int flag = 0;

void sigusr1_handler(int sig){

printf("sig : %d\n", sig);

write(1, "signal called\n",14);

flag = 1;

}

int main(){

printf("pid=%d\n", getpid());

signal(SIGUSR1, sigusr1_handler);

while(1){

printf("waiting for signal\n");

sleep(5);

if(flag != 0){

printf("break loop\n");

break;

}

}

return 0;

}

信号发送端:

#include

#include

#include

int main(int argc, char* argv[]){

int retval;

pid_t pid = atoi(argv[1]);

retval = kill(pid,SIGUSR1);

if ( retval )

{

perror( "kill" );

}

else

{

printf( "%d killed\n", pid );

}

}

在命令行里使用kill命令给信号接收端,发送信号也可以。

kill -s SIGUSR1 程序的PID

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

c/c++ linux 进程间通信系列7,使用pthread mutex

linux 进程间通信系列7,使用pthread mutex #include #include #include

c/c++ linux 进程间通信系列6,使用消息队列(message queue)

linux 进程间通信系列6,使用消息队列(message queue) 概念:消息排队,先进先出(FIFO),消息一旦出队,就从队列里消失了. 1,创建消息队列(message queue) 2,写 ...

c/c++ linux 进程间通信系列5,使用信号量

linux 进程间通信系列5,使用信号量 信号量的工作原理: 由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的: P(sv):如果sv的值大于零,就给它减1:如果 ...

c/c++ linux 进程间通信系列4,使用共享内存

linux 进程间通信系列4,使用共享内存 1,创建共享内存,用到的函数shmget, shmat, shmdt 函数名 功能描述 shmget 创建共享内存,返回pic key shmat 第一次创 ...

c/c++ linux 进程间通信系列3,使用socketpair,pipe

linux 进程间通信系列3,使用socketpair,pipe 1,使用socketpair,实现进程间通信,是双向的. 2,使用pipe,实现进程间通信 使用pipe关键点:fd[0]只能用于接收 ...

c/c++ linux 进程间通信系列2,使用UNIX_SOCKET

linux 进程间通信系列2,使用UNIX_SOCKET 1,使用stream,实现进程间通信 2,使用DGRAM,实现进程间通信 关键点:使用一个临时的文件,进行信息的互传. s_un.sun_fa ...

Linux 进程间通信系列之 信号

信号(Signal) 信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身:Linux除了支持Unix早期信号语义函数sigal外,还支持语义符 ...

Linux进程间通信(一): 信号 signal()、sigaction()

一.什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中 ...

随机推荐

Nginx简易配置文件(一)(静态页面及PHP页面解析)

user nobody nobody; worker_processes 4; error_log logs/error.log; pid logs/nginx.pid; events { use e ...

SQL知识整理一:触发器、存储过程、表变量、临时表

触发器 触发器的基础知识 create trigger tr_name on table/view {for | after | instead of } [update][,][insert][,] ...

[转]SPICE仿真软件基础(整理)

现在常用的SPICE仿真软件为方便用户使用都提供了较好的用户界面,在用仿真库中的元器件连成原理图后就可以进行仿真(当然要设置必要的仿真参数),但实际上只是用原理图自动产生了SPICE的格式语句,还是要 ...

使用D3绘制图表(2)--绘制曲线

上一篇是使用D3绘制画布,这一篇的内容是在画布上绘制曲线. 1.之前的html代码没有变化,但是我还是贴出来

fis-receiver:一行命令将项目部署到远程服务器

前言 本项目基于FIS2,没了.其实fis项目本身就提供了php版本的范例,这里翻译成node版本. 项目地址:/chyingp/fis-receiver 服务端接 ...

c语言优化

虽然对于优化C代码有很多有效的指导方针,但是对于彻底地了解编译器和你工作的机器依然无法取代,通常,加快程序的速度也会加大代码量.这些增加的代码也会影响一个程序的复杂度和可读性,这是不可接受的,比如你在 ...

多线程系列之四:Guarded Suspension 模式

一,什么是Guarded Suspension模式如果执行现在的处理会造成问题,就让执行处理的线程等待.这种模式通过让线程等待来保证实例的安全性 二,实现一个简单的线程间通信的例子 一个线程(Clie ...

c#操作数据库的增删改查语句及DataGridView简单使用

下面是要用户名和密码连接数据库的操作: 一.定义连接字符串,用来链接SQL Server string str_con = "server=.(服务器名称一般为 . );database=W ...

ThreadLocalMap的enrty的key为什么要设置成弱引用

ThreadLocalMap的Enrty代码实现: 将Entry的Key设置成弱引用,在配合线程池使用的情况下可能会有内存泄露的风险.之设计成弱引用的目的是为了更好地对ThreadLocal进行回收, ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。