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版本. 项目地址:https://github.com/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进行回收, ...

linux 进程 signal,c/c++ linux 进程间通信系列1,使用signal,kill相关推荐

  1. Linux系列教程——1 Linux磁盘管理、2 Linux进程管理、3 Linux系统服务、 4 Linux计划任务

    文章目录 1 Linux磁盘管理 1.磁盘的基本概念 1.什么是磁盘 2.磁盘的基本结构 3.磁盘的预备知识 1.磁盘的接口类型 2.磁盘的基本术语 3.磁盘在系统上的命名方式 4.磁盘基本分区Fdi ...

  2. linux进程及作业管理实验,Linux 进程及作业管理(示例代码)

    Linux 进程及作业管理 概述: 一.进程的相关概念: 1.相关定义:内核的功用:   进程管理.文件系统.网络功能.内存管理.驱动程序.安全功能等: 通俗的来说进程是运行起来的程序.唯一标识进程的 ...

  3. linux进程管道通信缺点,Linux进程通信(IPC)的方式详解

    前言:Linux进程通信的方式 什么是进程通信?进程通信是指进程之间交换信息 进程通信方式共有6种: 管道(pipe),包括流管道(s_pipe)和有名管道(named pipe) 信号(signal ...

  4. linux进程及作业管理实验,Linux 进程及作业管理(一)

    Linux 进程及作业管理 ============================================================================== 概述: 我们在 ...

  5. linux进程通信核心态时间,Linux进程管理简谈

    Linux系统进程管理简谈 进程是什么? 进程是对处理器.主存和I/O设备的抽象表示. 进程是操作系统对一个正在运行的程序的一种抽象,在一个系统上可以同时运行多个进程,而每个进程都好像在独占的使用硬件 ...

  6. linux进程被信号杀死,linux杀死进程以及发送或响应信号

    摘要 腾兴网为您分享:linux杀死进程以及发送或响应信号,真还赚,邮币在线,优美图,小t智联等软件知识,以及idevice,cdr条码生成器,二手车闪卖,卡卡日语,微帮手,arpr,萤石云监控,nf ...

  7. linux 进程通信比较,浅析Linux进程通信的几种方式及其比较

    摘要:本文通过对Linux下几种主要通信方式进行概述,并结合Linux系统的系统调用对OS中的实现进行简要概述,并对其优缺点进行分析,阐述了在不同通信情况下应该选择何种通信方式进行选择. 关键词:Li ...

  8. linux进程的高级管理,Linux高级程序设计(第2版) PDF扫描版[94MB]

    Linux高级程序设计(第2版)以Linux操作系统(内核为2.6版本)为开发平台.GCC 4.0/GDB 6.3为开发调试环境,详细介绍了Linux系统下编程环境及编程工具.文件管理(文件类型.AN ...

  9. linux进程被信号杀死,Linux 命令 - kill: 向进程发送信号

    kill 命令通常用来 "杀死"(终止)进程,它可以用来终止运行不正常的程序或者反过来拒绝终止的程序.kill 命令准确地说并不是 "杀死" 进程,而是给进程发 ...

  10. linux 进程装入 物理内存 页表,linux进程空间一步步探究.doc

    linux进程空间一步步探究.doc linux 进程地址空间的一步步探究 讲师:程姚根 我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内 ...

最新文章

  1. uniapp 生成Android证书及.keystore转.jks、.pem
  2. Java是“按引用传递”还是“按值传递”?
  3. 编程语言python特点-Python编程语言的优点
  4. 信息学奥赛一本通(1024:保留3位小数的浮点数)
  5. Python列出文件夹下某类文件名的方法
  6. 一文搞清楚 Spark shuffle 调优
  7. 部署LNMP架构及其应用
  8. 【重难点】【Java基础 07】变量类型、内部类、处理器指令优化
  9. JAVA高性能内存队列-disruptor
  10. MySQL数据库性能优化之硬件瓶颈分析
  11. 2020互联网大厂中秋礼盒PK!我酸了!
  12. 寻找影响免疫浸润细胞的基因(一)
  13. MSDTC不可用解决办法
  14. 读取任意编码的文件(转)
  15. oracle左连接应用场景,Oracle左连接left join 的实际操作与应用
  16. 申论范文:共同富裕“一定”会考的点
  17. 多想别人学习。增强编程能力。
  18. 小程序轮播图组件跳转到自定义页面
  19. CA机构介绍(Certificate Authority 域名SSL证书颁发机构)
  20. ARGOX CP-2140MPPLB18X60药柜

热门文章

  1. 中国IT缘何落后于印度
  2. linux设置mac地址命令,[转载]Linux下修改MAC地址
  3. 七夕情人节520程序员表白html网页源码送女友男友礼物
  4. 5款不妨一试的硬盘碎片整理工具
  5. 有消息称富士康已减少iPhone4出货量
  6. jmeter分布式报错,Error in rconfigure() method java.rmi.ConnectException: Connection refused to ho st
  7. 服务器改为电脑要修改什么,怎么样更改电脑服务器名
  8. 关于DWA导致的程序崩溃或挂死问题
  9. 超大跨度桥梁建设如何突破特异风致灾风险的困局?
  10. UTNet 用于医学图像分割的混合Transformer