Linux 基本语句_10_进程
进程和程序的区别:
程序是一段静态·的代码,是保存在非易失储存器上的制令和数据的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序的一次执行过程,包括了动态创建、调度、执行和消亡的整个过程,他是程序执行和资源管理的最小单位。可以用一个程序创建许多进程。或者反过来说,许多进程运行的可以是同一程序
fork函数,fork函数能复制整个父进程的所有代码,但不同的是其访问的实际物理地址和父进程不通,子进程虽然复制了父进程的所有代码,但实际执行的是fork()函数以下的部分,若当前进程是父进程则返回值大于零,否者返回值等于零
简单的fork函数伪代码:
#include <unistd.h>pid_t fork(void) {// 创建一个新的进程// 复制父进程的内存空间,包括代码、数据、堆栈等,采用写时复制技术if (/* 当前进程是子进程 */) {return 0; // 返回0表示这是子进程} else if (/* 当前进程是父进程 */) {return child_pid; // 返回子进程的进程ID} else {return -1; // 表示fork失败}
}
fork函数运用代码:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>int main(int argc, const char *argv[]){pid_t pid;printf("我是父进程我正准备创建一个子进程\n");pid = fork();//创建一个子进程if(pid == -1){printf("进程创建失败\n");}else if(pid > 0){printf("我是父进程已经成功创建子进程编号为: %d\n", pid);}else if(pid == 0){printf("我是子进程\n");}return 0;
}

getpid获取进程自身ID,getppid获取进程父进程的ID
检验地址使用关系代码:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>int main(int argc, const char *argv[]){int cnt = 0;pid_t pid;printf("我是父进程我正准备创建一个子进程\n");pid = fork();//创建一个子进程if(pid == -1){printf("进程创建失败\n");}else if(pid > 0){cnt = cnt + 1; printf("我是父进程已经成功创建子进程编号为: %d\n", pid);printf("CNT: %d,address: %p\n", cnt , &cnt);}else if(pid == 0){cnt = cnt + 1;printf("我是子进程我的编号为%d,我的父进程编号%d\n", getpid(), getppid());printf("CNT: %d,address: %p\n", cnt , &cnt);}return 0;
}

可以看出父子进程,输出cnt的地址都是一样的,说明父子进程都用的一个虚拟地址,但是cnt输出却都是1说明两者cnt的物理地址不一样
相关文章:
Linux 基本语句_10_进程
进程和程序的区别: 程序是一段静态的代码,是保存在非易失储存器上的制令和数据的有序集合,没有任何执行的概念;而进程是一个动态的概念,它是程序的一次执行过程,包括了动态创建、调度、执行和消亡的整个过程…...
矩阵起源加入 OpenCloudOS 操作系统开源社区,完成技术兼容互认证
近日,超融合异构云原生数据库 MatrixOne企业版软件 V1.0 完成了与 OpenCloudOS 的相互兼容认证,测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好。 一、产品简介 矩阵起源 MatrixOrigin 致力于建设开放的技术开源社区和…...
3D物理模拟和视觉特效软件SideFX Houdini mac中文介绍
SideFX Houdini for mac是一款3D物理模拟和视觉特效软件,几乎所有好莱坞特效电影里的物理模拟,包括碎裂,烟尘,碰撞,火焰,流体等模拟,都看得到它的身影。其独特的节点式操作方式,尤其…...
GPT-4.0网页平台-ChatYY
ChatYY的优势: 1. 支持大部分AI模型,且支持AI绘画: 2. 问答响应速度极快: 3. 代码解析: 4. 支持文档解读: 5. PC、移动端均支持: 访问直达:ChatYY.com...
mysql,redis导入导出数据库数据
mysql 导出数据 导出整个数据库: mysqldump -u 用户名 -p 数据库名 > 导出文件.sql 例如,如果你的用户名是 root,数据库名是 mydatabase,你可以运行以下命令: mysqldump -u root -p mydatabase > 导出文件.sql…...
conda修改虚拟环境名称
conda 修改虚拟环境名称 conda 不能直接更改名称,但是可以通过克隆环境解决 新建环境(克隆旧环境) conda create --name 新环境名 --clone 旧环境名 删除原环境 conda remove --name 旧环境名 --all 查看现有环境 conda env list conda i…...
c语言,将奇数和偶数分类
题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 思路:像冒泡排序那样,相邻两个数比较,两个都是偶数则不…...
前端设计模式之【观察者模式】
文章目录 前言介绍实现优缺点应用场景后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端设计模式 🐱👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误&#…...
HTTPS安全相关-通信安全的四个特性-ssl/tls
230-TLS是什么 1.http不安全 由于 HTTP 天生“明文”的特点,整个传输过程完全透明,任何人都能够在链路中截获、修改或者伪造请求 / 响应报文,数据不具有可信性 ; “代理服务”。它作为 HTTP 通信的中间人,在数据上下…...
并查集:Leetcode765 情侣牵手
n 对情侣坐在连续排列的 2n 个座位上,想要牵到对方的手。 人和座位由一个整数数组 row 表示,其中 row[i] 是坐在第 i 个座位上的人的 ID。情侣们按顺序编号,第一对是 (0, 1),第二对是 (2, 3),以此类推,最后…...
如何设计一个网盘系统的架构
1. 概述 现代生活中已经离不开网盘,比如百度网盘。在使用网盘的过程中,有没有想过它是如何工作的?在本文中,我们将讨论如何设计像百度网盘这样的系统的基础架构。 2. 系统需求 2.1. 功能性需求 用户能够上传照片/文件。用户能…...
【代码随想录】算法训练计划17
1、 110.平衡二叉树 题目: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。 思路: 经典后序遍历,感…...
“护肤品销售策略:从“免费拼团”到“3人回本大放送”“
有一个销售护肤品的团队,他们家399块钱一套的护肤品,他们在小程序这一个渠道,只用了23天的时间,就卖出去了2000多万的营业额,你敢信吗? 那么23天的时间,他们是怎么卖出去2000多万的呢࿱…...
uniapp和vue3+ts开发小程序,使用vscode提示声明变量冲突解决办法
在uniapp中,我们可能经常会遇到需要在不用的环境中使用不同变量的场景,例如在VUE3中的小程序环境使用下面的方式导入echarts: const echarts require(../../static/echarts.min); 如果不是小程序环境则使用下面的方式导入echartsÿ…...
CCLink转Modbus TCP网关_MODBUS报文配置
兴达易控CCLink转Modbus TCP网关是一种功能强大的设备,可实现两个不同通信协议之间的无缝对接。它能够将CCLink协议转换为Modbus TCP协议,并通过报文配置实现灵活的通信设置。兴达易控CCLink转Modbus TCP网关可以轻松实现CCLink和Modbus TCP之间的数据转…...
【开源】基于Vue.js的大学兼职教师管理系统的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目详细录屏 二、研究内容三、界面展示3.1 登录注册3.2 学生教师管理3.3 课程管理模块3.4 授课管理模块3.5 课程考勤模块3.6 课程评价模块3.7 课程成绩模块3.8 可视化图表 四、免责说明 一、摘要 1.1 项目介绍 大学兼职教师管理系统࿰…...
Mysql数据库 14.SQL语言 视图
一、视图的概念 视图:就是由数据库中一张或多张表根据特定的条件查询出的数据狗造成的虚拟表 二、视图的作用 安全性,简单性 三、视图的语法 语法 create view 视图表 as select_statement; 代码实现 #创建视图 将查询结果创建称为视图&#x…...
【Acwing171】送礼物(双向dfs)题解
本题思路来源于acwing算法提高课 题目描述 看本文需要准备的知识 1.二分(强烈推荐文章:一分钟学会二分模板 2.dfs基本思想,了解“剪枝”这个术语 思路分析 首先这道题目看起来就是一个01背包,但是如果直接用01背包去做&…...
机器学习---多分类SVM、支持向量机分类
1. 多分类SVM 1.1 基本思想 Grammer-singer多分类支持向量机的出发点是直接用超平面把样本空间划分成M个区域,其 中每个区域对应一个类别的输入。如下例,用从原点出发的M条射线把平面分成M个区域,下图画 出了M3的情形: 1.2 问题…...
玩转Linux基本指令
> 作者简介:დ旧言~,目前大二,现在学习Java,c,c,Python等 > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:牢记Linux的基本指令。 > 毒鸡汤:挫…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
