当前位置: 首页 > news >正文

c语言系统编程之多进程

程序与进程的区别?

程序是静态的未运行的二进制文件,存储在磁盘中

进程是已经运行的二进制文件,存储在内存中

进程的内存划分图有哪几部分?

堆(存储malloc和calloc出来的空间)、栈(局部变量、环境变量、命令行参数)、数据段(全局变量、静态变量、常量)、代码段(用户代码、系统初始化的代码)

进程的状态转换?

时间片的定义:

分时操作系统分配给每个正在运行的系统的一段微观上的时间

进程的控制命令:

ps:查看当前终端的进程

ps -e: 查看当前系统的所有进程

kill 给进程pid发送一个信号(sigstop、sigcont)

killall 给进程名发送一个信号

所有进程都有其父进程,最开始的进程有init进程和system进程创建

创建进程的函数:fork(),fork函数会连续返回两个值,一个是子进程返回零,一个是父进程返回大于零。

父子进程间不一样的属性有哪些?

pid号、记录锁、挂起的信号

孤儿进程:

当父进程比子进程先死亡,子进程就会变为孤儿进程,所有孤儿进程都由init进程进行回收。(子进程比父进程先死亡可以防止孤儿进程的产生)

僵尸进程:

子进程死亡,父进程未回收子进程的资源(调用wait),子进程变为僵尸进程

wait函数的作用:

用来回收子进程的资源,wait((int)&state),根据状态码得知子进程的状态

状态码如下:

获取pid的函数有哪些?

getpid()获取当前进程的pid号

getppid()获取父进程的pid号

exit函数()的作用?

使得进程退出,从运行状态进入到僵尸态。

execl()函数的作用?

让进程重新加载其他程序文件。

相关文章:

c语言系统编程之多进程

程序与进程的区别? 程序是静态的未运行的二进制文件,存储在磁盘中 进程是已经运行的二进制文件,存储在内存中 进程的内存划分图有哪几部分? 堆(存储malloc和calloc出来的空间)、栈(局部变量…...

前端还是后端:探讨Web开发的两大街区

前端还是后端:探讨Web开发的两大街区 一、引言二、两者的对比分析技能要求和专业知识职责和工作内容项目类型和应用领域就业前景和市场需求 三、技能转换和跨领域工作四、全栈开发结语 一、引言 Web开发领域涉及到前端开发和后端开发这两个不同而又互为补充的领域。…...

JavaScript中如何确定this的值?如何指定this的值?

🎀JavaScript中的this 在绝大多数情况下,函数的调用方法决定了this的值(运行时绑定)。this不能在执行期间被赋值,并且在每次函数呗调用时this的值也可能会不同。 🍿如何确定this的值: 在非严格…...

ubuntu下源码编译方式安装opencv

基础条件 ubuntu 20.04 opencv 3.4.3 opencv 源码编译的安装步骤 第一步, 首先clone源码 git clone https://github.com/opencv/opencv.git第二步,依赖包,执行下面的命令 sudo apt-get install build-essential sudo apt-get install cmak…...

spring boot整合常用redis客户端(Jedis、Lettuce、RedisTemplate、Redisson)常见场景解决方案

Java操作redis有三种客户端供选择:Jedis、Lettuce、Redisson。 在实际项目中运用最多的客户端还是Redisson、RedisTemplate;其中RedisTemplate并非是一个新的redis客户端实现,RedisTemplate是Spring Data Redis中提供的封装好的redis操作模板…...

HarmonyOS之运行Hello World

目录 下载与安装DevEco Studio 配置环境 创建项目 认识DevEco Studio界面 运行Hello World 了解基本工程目录 工程级目录 模块级目录...

postgresql数据库|wal日志的开启以及如何管理

一, wal的基本概念 WAL即Write Ahead Log预写式日志,简称wal日志,相当于oracle中的redo日志。只是oracle中redo是固定几个redo日志文件,然后轮着切换去写入。pg中wal日志是动态切换,单个wal日志写满继续写下一个wal日志,连续不断生成wal日志。&#xf…...

小波变换学习笔记【1】

【声明】本博客为学习B站视频小波分解与重构所做笔记,供自己和大家查阅学习,想查看 up 原视频请移步 B 站,侵删。 1.1 小波变换的由来 傅里叶变换基本思想:将信号分解成一系列不同频率的连续正弦波的叠加。 其缺点是,…...

雷柏mv20鼠标使用体验

用了1年多,第一次用竖着的鼠标,现在已经很习惯了,感觉还不错。说说使用感受: 1、 仍然是长时间使用鼠标,但是很少出现手腕痛的情况,确实是有一定效果的。 2、使用场景是有限制的,我是配合笔记…...

【分布式云储存】Springboot微服务接入MinIO实现文件服务

文章目录 前言技术回顾准备工作申请accessKey\secretKey创建数据存储桶公共资源直接访问测试 接入springboot实现文件服务依赖引入配置文件MinIO配置MinIO工具类 OkHttpSSLSocketClient兼容ssl静态资源预览解决方案资源上传预览测试测试结果 前言 上篇博客我们介绍了分布式云存…...

机器人中的数值优化|【四】L-BFGS理论推导与延伸

机器人中的数值优化|【四】L-BFGS理论推导与延伸 往期内容回顾 机器人中的数值优化|【一】数值优化基础 机器人中的数值优化|【二】最速下降法,可行牛顿法的python实现,以Rosenbrock function为例 机器人中的数值优化|【三】无约束优化,拟牛…...

ThemeForest – Canvas 7.2.0 – 多用途 HTML5 模板

ThemeForest 上的 HTML 网站模板受到全球数百万客户的喜爱。与包含网站所有页面并允许您在 WP 仪表板中自定义字体和样式的 WordPress 主题不同,这些设计模板是用 HTML 构建的。您可以在 HTML 编辑器中编辑模板,但不能在 WordPress 上编辑模板&#xff0…...

本地部署 川虎 Chat

本地部署 川虎 Chat 1. 川虎 Chat 项目概述2. Github 地址3. 部署 川虎 Chat4. 配置 config.json5. 启动 川虎 Chat 1. 川虎 Chat 项目概述 为ChatGPT等多种LLM提供了一个轻快好用的Web图形界面和众多附加功能。 支持 GPT-4 基于文件问答 LLM本地部署 联网搜索 Agent 助理…...

IntelliJ IDEA 控制台中文乱码的四种解决方法

前言 IntelliJ IDEA 如果不进行配置的话,运行程序时控制台有时候会遇到中文乱码,中文乱码问题非常严重,甚至影响我们对信息的获取和程序的跟踪。开发体验非常不好。 本文中我总结出四点用于解决控制台中文乱码问题的方法,希望有助…...

23岁准备转行嵌入式

前端难找工作,而且感觉没有前景,我觉得我就算入行也不会干多久,软件开发让我感觉不到实在的东西。小时候喜欢去动手制作一些玩具,我对实在一些的东西感兴趣一些例如手表,小机器人等等一些。我有保持坚持学习下去的动力…...

http请求报错:406 Not Acceptable的解决办法

目录 应用场景 基本概念 解决方法 方法一: 方法二: 方法三: 应用场景 接口在返回结果集的时候出现了406的报错,但是返回String类型不会报错,正常返回。 基本概念 406 Not Acceptable是一个HTTP响应状态码&…...

信息化发展75

数字化治理 数字化治理通常指依托互联网、大数据、人工智能等技术和应用,创新社会治理方法与手段,优化社会治理模式,推进社会治理的科学化、精细化、高效化,助力社会治理现代化。数字化治理是数字经济的组成部分之一,…...

C++八股

1、简述一下C中的多态 在面向对象中,多态是指通过基类的指针或引用,在运行时动态调用实际绑定对象函数的行为,与之相对应的编译时绑定函数称为静态绑定。 静态多态 静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择…...

Nat. Commun. | 大规模高分辨单光子成像

本文由论文作者团队(课题组)投稿 单光子雪崩二极管(Single Photon Avalanche Diode,简称SPAD)阵列因其极佳的单光子灵敏度而受到广泛关注,已广泛应用于量子通信与计算、荧光寿命成像、时间飞行成像等各个领域。与同样具有较高灵敏度的EMCCD和sCMOS相比,SPAD阵列能够在极…...

Android开源库

见:GitHub - eHackyd/Android_OpenSourceLibrary: Android开源库的学习笔记...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...