千锋教育嵌入式物联网教程之系统编程篇学习-03
目录
进程的终止
exit函数
_exit函数
进程退出清理
进程间的替换
进程间通信
常见通信机制
进程间通信的实质
信号
产生信号的方式
信号的默认处理方式
进程对信号的处理方式
kill函数
进程的终止
使用exit函数对进程进行终止,而return只是结束函数,如果想让return结束进程的话,那么把它放在主函数当中即可。一般都是使用exit(以我的知识面)
exit函数
_exit函数
进程退出清理
其实就是当进程要退出时,最后执行的一个函数
我也不知道有什么用,为什么不直接取一个函数,并且把这个函数的位置放在最后面不就行了,不理解这个函数应该在什么场景使用
进程间的替换
实质就是:不使用fork的基础上,实现另外一个进程(剧本)。
常见的操作:在一个进程中我想知道当前的文件路径,那么你就可以直接使用shell命令pwd即可实现了,因此exec可以帮我们实现linux中的命令。或者你想执行另外一个C程序./hello例如
虽然有6个函数,但是我觉得使用一个函数即可execvp即可,把命令使用数组保存更好看,而且可以使用相对路径,不需要使用绝对路径
理解Path其实就是一个可执行文件,其实在linux终端输入ls,它就是一个可执行文件
不带P的只能使用绝对路径,而带P的可以使用绝对和相对路径,因此execlp可以直接取代execl数更方便
exec是替换,而fork是继承赋值
进程间通信
进程间的相互通信,使用某些固定的函数进行编程
进程间通信功能:数据传输、资源共享、通知事件、 进程控制
常见通信机制
这些通信方式,你在裸机开发中也会使用到部分内容,其次在学freertos的时候,也使用到了内容:如事件标志组、二值信号量、消息队列、任务通知都有这些身影
不同主机通信--socket套接字
进程间通信的实质
重点:绝大多数进程间的通信方式是基于内核空间的操作
信号
异步就是:进程不需要等待信号的到达,进程也不知道信号啥时候到达,相当于单片机的中断层次,突然就来了--然后处理某一个突发事件。所以理解:信号是软件中断--对硬件中断的模拟
后面的知识可以知道,信号比中断更完善,因为单片机的中断来了就需要执行,但是信号来了不一定需要执行,可以不执行(忽略信号),但是在硬件中貌似中断是不能忽略的,必须去执行中断。
因此这个软件中断,起提醒作用,提醒你来了信号,但是至于你执不执行看你自己需求,不强求执行
我们只会使用前31个信号,并且只使用几个常用信号而已
信号的名字都已经定义好了,因此我们是使用已有的信号进行编程
这个操作我们经常使用,也需要记住,因为有时候我们写程序的时候是死循环,那么我们可以直接使用该命令,可以强制退出我们的死循环程序
产生信号的方式
区分kill函数和kill命令,kill不是杀死的意思,它的作用是发送信号
信号的默认处理方式
进程对信号的处理方式
信号默认处理方式与进程对信号的处理方式区分并且理解一下,一个是信号本身具备的默认能力,而另外一个是进程对信号的处理方式。就像砖头(信号)的默认功能是建房子,而人(进程)把砖头(信号)当打人工具(执行自定义信号处理)。但是有些信号是只能当默认的,比如钱的处理方式是花,你不能烧(自己理解一下)
kill函数
进程组的所有进程可以理解为在主进程中我们fork了很多子进程,而这些子进程与主进程都在一个进程组中
PID:进程的唯一标识
PGID:进程组ID
千万pid不要等于-1--不然系统所有进程都被搞了--后果很大--但是不知道会出现啥情况
至于信号的选择,我们的作用是退出进程,因此在信号表中选择一个功能为退出进程的功能即可
自己也可以向自己发信号--或者是等待到了某种事情,该进程就自动退出
我们也可以在终端对某一个进程进行发信号:kill 信号选项 进程号----功能为数字,为2的时候表示停止进程,而进程号的获取,我们可以使用ps ajx获取所有进程号
kill 2 3103/kill -2 3103 2表示SIGINT信号
相关文章:

千锋教育嵌入式物联网教程之系统编程篇学习-03
目录 进程的终止 exit函数 _exit函数 进程退出清理 进程间的替换 进程间通信 常见通信机制 进程间通信的实质 信号 产生信号的方式 信号的默认处理方式 进程对信号的处理方式 kill函数 进程的终止 使用exit函数对进程进行终止,而return只是结束函数&a…...

升级到https
现在很多站长都会考虑将自己的站点从http升级到https,不仅是基于安全的考虑,有的也是因为第三方平台的限制,如谷歌浏览器会将http站点标记为不安全的站点,微信平台要求接入的微信小程序必须使用https等。 那如何将一个http站点升…...

【C语言】数据结构-二叉树
主页:114514的代码大冒险 qq:2188956112(欢迎小伙伴呀hi✿(。◕ᴗ◕。)✿ ) Gitee:庄嘉豪 (zhuang-jiahaoxxx) - Gitee.com 引入 我们之前已经学过线性数据结构,今天我们将介绍非线性数据结构----树 树是一种非线性的…...
c++中std::condition_variable最全用法归纳
前言 建议阅读以下文章前需先对建立 std::thread 多线程与std::mutex 锁有一定程度的熟悉 std::thread最全用法归纳 std::mutex最全用法归纳 概括 使用 std::condition_variable 的 wait 会把目前的线程 thread 停下来并且等候事件通知,而在另一个线程中可以使用…...
Python数据可视化:数据关系图表可视化
目录 1、散点图 1.1、趋势显示的二维散点图 1.2、分布显示的二维散点图 1.3、散点曲线图...
Urho3D约定
Urho3D使用以下约定和原则: 左手坐标系。正X、Y和Z轴指向右侧、上方和前方,正旋转为顺时针。度用于角度。顺时针顶点定义正面。音频音量指定为0.0(静音)到1.0(全音量)路径名使用斜杠而不是反斜杠。调用操作…...
python数据结构-列表,元组
列表 列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项目)列表。 使用列表的重要事项是,列表中的项目不必是相同的类型。也就是说一个列表中的项目(元素)可以是数字,字符串,数组,字典等甚至是列表类…...

Properties类读配置文件、修改配置文件
Properties类简介(1)Properties类是专门用于读写配置文件的集合类(2)配置文件的后缀名为.properties,内容格式为:# 可以用“#”作为注释 键值 键值**注意:**键值对不需要有空格,值不需要用引号一起来。默认类型是String。键、值不可以是null(3)Properties类的方法可查找api文档…...

图解LeetCode——剑指 Offer 24. 反转链表
一、题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 二、示例 示例: 【输入】 1->2->3->4->5->NULL 【输出】 5->4->3->2->1->NULL 限制: 0 < 节点个数 < 5000 三、…...

【C语言】“指针的运算”、“指针与数组”
文章目录一、指针运算1.指针 - 整数2.指针-指针3.指针关系运算二、指针与数组三、二级指针四、指针数组完结一、指针运算 指针可以进行整数,指针-指针,还有关系运算,其他的运算会被编译器阻止。 1.指针 - 整数 对指针进行的时候一定要注意不…...

Linux高级命令之查找文件命令
查找文件命令学习目标能够说出查找文件使用的命令1. find命令及选项的使用命令说明find在指定目录下查找文件(包括目录)find命令选项:选项说明-name根据文件名(包括目录名)字查找find命令及选项的效果图:2. find命令结合通配符的使用通配符:是一种特殊语句,主要有星…...
PyCharm+Docker:打造最舒适的深度学习炼丹炉
九、PyCharmDocker:打造最舒适的深度学习炼丹炉 安装docker: 如何在 Ubuntu 22.04 LTS 中安装 Docker 和 Docker Compose https://zhuanlan.zhihu.com/p/547169542 修改Linux硬盘卷标: ntfs文件系统:https://blog.csdn.net/n…...

【mock】手把手带你用mock写自定义接口+mock常用语法
mock自定义接口完整流程 官网语法规范:https://github.com/nuysoft/Mock/wiki/Syntax-Specification 首先: 要有一个项目,我这里是vue3项目,以下从vue3项目搭建开始,已搭建好的请直接看2 1.空目录下新建vue3项目 运行创建项目命令: 在bash中:(文件路径处输入cm…...

2023 年腾讯云服务器CVM快速配置购买教程,新手上云必备!
腾讯云服务器快速配置购买教程是新手必备的上云教程。主机教程网在本文中以腾讯云服务器为例,给大家带来一个完整的、手把手教学的服务器购买流程。助力快速完成服务器的购买、配置、以及网站的搭建,给新手节省宝贵的时间,避免采坑࿰…...

opencv显示图像
大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

C++:类和对象(中)
文章目录1 类的6个默认成员函数2 构造函数2.1 概念2.2 特性3 析构函数3.1 概念3.2 特性4 拷贝构造函数4.1 概念4.2 特性5 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 前置重载和后置重载6 日期类的实现7 const成员8 取地址及const取地址操作符重载1 类的6个默认成员函…...

53. 最大子数组和
文章目录题目描述暴力法动态规划法分治法参考文献题目描述 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入&…...

基于Java+SpringBoot+SpringCloud+Vue前后端分离医院管理系统设计与实现
博主介绍:✌全网粉丝3W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建、毕业项目实战、项目定制✌ 博主作品:《微服务实战》专栏是本人的实战经验总结,《S…...
QT基础入门【环境配置篇】linux桌面QT开发环境的构建以及问题解决
目录 一、下载QT的安装包 二、安装 1.执行以下命令开始安装 2.选择配置 三、启动...
Linux系统之部署企业内部静态导航页
Linux系统之部署企业内部静态导航页 一、本次实践目的二、检查本地系统环境1.检查系统版本2.检查内核版本三、下载静态导航页资源包1.创建下载目录2.下载资源包四、安装apache服务1.安装httpd2.复制网页文件3.重启httpd服务4.检查httpd服务状态五、访问导航页六、修改导航页网站…...

IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...