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的基本指令。 > 毒鸡汤:挫…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...

实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...