首页 > 系统相关 >linux网络编程-进程间通信——信号

linux网络编程-进程间通信——信号

时间:2022-12-19 20:00:39浏览次数:57  
标签:printf signo int 编程 间通信 信号 linux 进程 SIGTERM

信号是进程间通信的方式之一,进程之间通过发送和接收不同的值来通信,这些不同的值被标示为各种信号。

我们使用kill指令杀死一个进程,本质上是kill这个程序给对应的进程发送了一个进程终止的信号SIGTERM。通过kill -l可以查看系统默认的信号。 

1、接收信号:

 1 //main.c
 2 #include <stdio.h>
 3 #include <signal.h>
 4 
 5 int end = 0;
 6 
 7 static void sig_handle(int signo)
 8 {
 9     switch(signo)
10     {
11         case SIGTERM:
12        printf("收到信号SIGTERM, value = %d\n", signo);
13        break;
14         
15        default:
16        printf("收到其他信号,value=%d\n", signo);
17        break;
18     }
19     end = 1;
20     return;
21 }
22 
23 int main(int argc, char **argv) 
24 {
25     sighandler_t ret;
26     ret = signal(SIGTERM, sig_handle);
27     if(SIG_ERR==ret)
28     {
29        printf("为SIGTERM挂接信号处理函数失败\n");
30        return -1;
31     }
32     printf("开始监听信号...\n");
33     while(1)
34     {
35        if(1==end)
36            return 0;
37     }
38 }

 2、编译

gcc -D_GNU_SOURCE main.c

3、测试

  执行./a.out,并另启终端执行pkill -15 a.out;

  可以看到进程收到信号并打印:收到信号SIGTERM, value = 15

 

标签:printf,signo,int,编程,间通信,信号,linux,进程,SIGTERM
From: https://www.cnblogs.com/zzx2bky/p/16991792.html

相关文章

  • linux设备树实现多个中断父(interrupt-parent)节点
    方法一: interrupts-extended: 指定中断和父中断的另一种形式,允许多个父中断。这优先于'interrupts'和'interrupt-parent'。#interrupt-cells=<2>;interrupts-ext......
  • linux程序保护机制&gcc编译选项
    转载自:https://www.jianshu.com/p/91fae054f922总结NX:-zexecstack/-znoexecstack(关闭/开启)Canary:-fno-stack-protector/-fstack-protector/-fstack-protec......
  • GO语言入门第五节 Go语言的并发编程
    写在前面因为并发相关的东西又多又长。。所以这个专题会分成多篇博客来写啦。。本篇文章包括携程机制,携程和线程的区别使用锁来控制并发使用通道(channel)来控制并发通道的多......
  • Linux基础-查看cpu、内存和环境等信息
    使用Linux系统的过程中,我们经常需要查看系统、资源、网络、进程、用户等方面的信息,查看这些信息的常用命令值得了解和熟悉。1,系统信息查看常用命令如下:lsb_release-a......
  • Linux基础-文本处理命令
    概述find文件查找grep文本搜索参考资料概述Linux下使用Shell处理文本时最常用的工具有:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk。find......
  • linux防火墙
    https://www.cnblogs.com/kqdssheng/p/16405868.htmlhttps://zhuanlan.zhihu.com/p/580178712 1、netfilter、iptables、firewall、ufw之间的关系:netfilter-->iptables......
  • 刷题笔记——1043.[编程入门]三个数字的排序
    题目1043.[编程入门]三个数字的排序代码whileTrue: try: li=list(map(int,input().strip().split())) li.sort() foriinli: print(i,end='') except......
  • linux(Ubuntu)安装QQ2013
    首先简述自己的系统配置:win7+ubuntu12.04linuxQQ有各种版本,这里介绍两种:linuxQQ和wineQQ 1------linuxqq是QQ简化版,功能很少,界面很差,但是安装简单     下载地......
  • win32多线程编程与锁
    模拟售票程序。未加锁程序:#include<iostream.h>#include<windows.h>intindex=0;intti=100;DWORDWINAPIfun1(LPVOIDlpParameter);DWORDWINA......
  • linux C的一些笔记
    1.主函数的入参 主函数类似定义intmain();intmain(intargs);intmain(intargs,char*av[]);可以无惨,可以接受参数输入,入参一般为命令行执行参数,比如  传......