Linux 软件编程学习第十一天

embedded/2024/9/25 23:21:57/

1.管道:
    进程间通信最简单的形式

2.信号:
    内核层和用户层通信的一种方式

    1.信号类型:
    1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
    6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
    11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
    16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
    21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
    26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
    31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
    38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
    43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
    48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
    53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
    58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
    63) SIGRTMAX-1    64) SIGRTMAX    

    可以从终端输入:
        SIGINT      ctrl+c 
        SIGQUIT     ctrl+\
        SIGTSTP     ctrl+z 
    
    9号和19号信号 
        SIGKILL 进程结束
        SIGSTOP 进程挂起

    SIGSEGV:表示内核操作内存错误
    SIGUSR1:用户可以使用该信号实现通信 
    SIGCHLD:表示该进程有一个子进程结束了 
    SIGPIPE:表示管道破裂
    SIGIO:表示IO事件发生

    2.信号的处理方式:
        1.缺省:
            按照默认的方式处理信号
        2.忽略:
            不处理信号
        3.捕捉:
            按照指定的方式处理信号

        9号SIGKILL和19号信号SIGSTOP不能被忽略和捕捉
    
    3.函数接口:
        1.signal
            typedef void (*sighandler_t)(int);
            sighandler_t signal(int signum, sighandler_t handler);
            功能:
                切换信号的处理方式
            参数:
                signum:信号的编号
                handler:信号对应的处理方式
                    SIG_IGN     忽略信号
                    SIG_DFL     缺省信号处理方式
                    自定义的函数的函数名(指向函数的指针)
            返回值:    
                成功返回之前注册的信号的处理方式
                失败返回SIG_ERR

    4.定时器:
        alarm 
        unsigned int alarm(unsigned int seconds);
        功能:
            间隔seconds秒后给进程发送SIGALRM信号
        参数:
            seconds:间隔秒数
        返回值:
            成功返回上次定时剩余的秒数
            失败返回-1

    5.kill 
        int kill(pid_t pid, int sig);
        功能:
            向进程发送信号
        参数:
            pid:进程id
            sig:信号值
        返回值:
            成功返回0
            失败返回-1


 


http://www.ppmy.cn/embedded/94221.html

相关文章

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第二弹 手搓机械臂

第一弹赛题的选择与前期方案的准备 opencv调用摄像头bug的解决 机械臂的组装 采用三个舵机,组成一个三自由度的机械臂。 并且利用电磁吸盘的方式,完成对棋子的抓取工作,后面的事实证明,在预算不足的情况下,队友手搓…

学习笔记第二十二天

1. time 函数 time_t time(time_t *t); 功能:获取当前时间(自1970年1月1日00:00:00 UTC以来的秒数)。 参数:t 是一个指向 time_t 类型的指针,用于存放返回的时间值。如果传递 NULL,函数将不 会使用此参数…

Turble海龟画图介绍

Turble海龟画图介绍 这一生无需比较,一笔写不出两个我,我就是我,半身风雨半寒凉,半梦半醒半人间。风往北吹人往南走,爱与不爱都要落落大方,顺其自然,心安即是家,心若向阳&#xff0c…

基于R语言绘制GGE双标图2

参考资料: 严威凯等: 双标图分析在农作物品种多点试验中的应用【作物学报】 https://cran.r-project.org/web/packages/GGEBiplots/GGEBiplots.pdf 1、如何判断双标图是否充分体现数据中的规律 在对双标图的解释中,有一个隐含的假设,就是所…

Java设计模式详细讲解

目录 设计模式概述 1.1 什么是设计模式1.2 设计模式的类型1.3 设计模式的历史与发展1.4 设计模式在软件开发中的重要性 创建型模式 2.1 单例模式2.2 工厂方法模式2.3 抽象工厂模式2.4 建造者模式2.5 原型模式 结构型模式 3.1 适配器模式3.2 装饰器模式3.3 代理模式3.4 外观模…

RDF引用XML资源的示例

使用XML Schema定义RDF资源的步骤 定义XML Schema: 首先,需要有一个XML Schema(XSD)来定义资源的结构。XML Schema提供了详细的数据类型和结构定义。 映射XML Schema到RDF: 创建一个RDF词汇表(vocabulary&…

动画魔法秀:JavaScript前端动画实战指南

标题:动画魔法秀:JavaScript前端动画实战指南 在现代Web开发中,动画不仅能够提升用户体验,还能使网页更加生动有趣。JavaScript作为实现前端动画的重要工具之一,提供了多种方式来创建平滑且吸引人的动画效果。本文将详…

前端【详解】缓存

HTTP 缓存 https://blog.csdn.net/weixin_41192489/article/details/136446539 CDN 缓存 CDN 全称 Content Delivery Network,即内容分发网络。 用户在浏览网站的时候,CDN会选择一个离用户最近的CDN边缘节点来响应用户的请求 CDN边缘节点的缓存机制与HTTP 缓存相同…