Linux-----进程处理(子进程创建)

 【尚硅谷嵌入式Linux应用层开发,linux网络编程,linux进程线程,linux文件io】https://www.bilibili.com/video/BV1DJ4m1M77z?p=35&vd_source=342079de7c07f82982956aad8662b467

main函数

fork创建进程

fork()参数 

/*** @brief 创建一个子进程(相当于复制,包括内存空间)* void: 不需要填写参数*  * @return pid_t pid_t(int值) *  (1) 在父进程中 返回子进程的PID*  (2) 在子进程中 返回0*  (3) 发生错误 返回-1*/
pid_t fork(void);

getpid()   获取进程PID 

#include <sys/types.h>
#include <unistd.h>/*** @brief 返回调用进程的PID* * @return pid_t 不会失败,必然返回进程PID*/
pid_t getpid(void);

 getppid()   获取父进程PID

#include <sys/types.h>
#include <unistd.h>/*** @brief 返回调用进程父进程的PID* * @return pid_t 不会失败,必然返回父进程PID,即PPID*/
pid_t getppid(void);

代码案例

getpid()查看进程号

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main(void) {//调用fork之前代码都是在父进进行的printf("君不见黄河之水天上来,奔流到海不复回_%d\n",getpid());// 使用fork创建子进程while (1){/* code */}return 0;
}

fork()创建子进程

fork() 之后的代码都是在父子进程中各自执行一次的

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main(void) {//调用fork之前代码都是在父进进行的printf("父进程PID:%d\n", getpid());// 使用fork创建子进程/* 不需要传参return int 进程号(1) -1出错(2) 父进程中表示子进程PID(3) 子进程中显示0*/// fork() 之后的代码都是在父子进程中各自执行一次的pid_t pid = fork();printf("子进程PID:%d\n", pid);while (1){/* code */}return 0;
}

条件判断使得父子进程执行各自对应的代码

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>int main(void) {//调用fork之前代码都是在父进进行的printf("父进程PID:%d\n", getpid());// 使用fork创建子进程/* 不需要传参return int 进程号(1) -1出错(2) 父进程中表示子进程PID(3) 子进程中显示0*/// fork() 之后的代码都是在父子进程中各自执行一次的pid_t pid = fork();// printf("子进程PID:%d\n", pid);if (pid < 0) {perror("getpid");}else if (pid==0){printf("子进程:新的子进程:%d, 其父进程:%d\n", getpid(), getppid());}else {printf("父进程: 父进程%d,创建了进程%d\n", getpid(), pid);}while (1){/* code */}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/498447.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯选拔赛真题85】python摆放箱子 第十五届青少年组蓝桥杯python选拔赛真题 算法思维真题解析

目录 python摆放箱子 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、 推荐资料 1、蓝桥杯比赛 2、考级资料 3、其它资料 python摆放箱子 第十五届蓝桥杯青少年组python比赛选拔赛真题详细解析 一…

【SQLi_Labs】Basic Challenges

什么是人生&#xff1f;人生就是永不休止的奋斗&#xff01; Less-1 尝试添加’注入&#xff0c;发现报错 这里我们就可以直接发现报错的地方&#xff0c;直接将后面注释&#xff0c;然后使用 1’ order by 3%23 //得到列数为3 //这里用-1是为了查询一个不存在的id,好让第一…

按照人们阅读Excel习惯来格式化BigDecimal

1、环境/问题描述 使用springboot发送邮件(附件)的方式将月度报表发送给领导查阅&#xff0c;数据是准确的&#xff0c;领导基本满意。 就是对一些数字的格式化提出了改进建议&#xff0c;比如不要让大数字自动转为科学计数法、浮点数小数点后都是0就不要带出来&#xff0c;根…

STM32 高级 WIFi案例1:测试AT指令

需求描述 测试AT指令是否能够正常控制ESP32的wifi&#xff0c;比如重启、读取设备信息等。 思路&#xff1a; stm32通过串口usart2向ESP32发布命令。ESP32通过串口1返回信息。 配置&#xff1a; 第一步&#xff1a;对ESP32芯片烧录可以读取stm32命令的固件&#xff08;fac…

Unity 读Excel,读取xlsx文件解决方案

Unity读取表格数据 效果&#xff1a; 思路&#xff1a; Unity可以解析Json&#xff0c;但是读取Excel需要插件的帮助&#xff0c;那就把这个功能分离开&#xff0c;读表插件就只管读表转Json&#xff0c;Unity就只管Json解析&#xff0c;中间需要一个存储空间&#xff0c;使用…

通过无障碍服务(AccessibilityService)实现Android设备全局水印显示

一、无障碍功能简介 首先我们先来了解下无障碍功能的官方介绍&#xff1a; 无障碍服务仅应用于帮助残障用户使用 Android 设备和应用。它们在后台运行&#xff0c;并在触发 AccessibilityEvents 时接收系统的回调。此类事件表示用户界面中的某些状态转换&#xff0c;例如焦点已…

查看vue的所有版本号和已安装的版本

1.使用npm查看Vue的所有版本&#xff1a; npm view vue versions2.查看项目中已安装的 Vue.js 版本 npm list vue

【鸿蒙NEXT】鸿蒙里面类似iOS的Keychain——关键资产(@ohos.security.asset)实现设备唯一标识

前言 在iOS开发中Keychain 是一个非常安全的存储系统&#xff0c;用于保存敏感信息&#xff0c;如密码、证书、密钥等。与 NSUserDefaults 或文件系统不同&#xff0c;Keychain 提供了更高的安全性&#xff0c;因为它对数据进行了加密&#xff0c;并且只有经过授权的应用程序才…

js ul li 事件委托

<ul><li>1111111111</li><li>2222222222</li><li>3333333333</li><li>4444444444</li> </ul>常规的 li 绑定点击事件 document.querySelectorAll(ul li).forEach((li) > {li.addEventListener(click, functio…

vue 嵌套el-dialo,当内层的弹窗弹出时,整个页面被遮罩

活不多说&#xff0c;直接上问题 当在页面上&#xff0c;点击出现第一个弹窗&#xff0c;然后在弹窗里面&#xff0c;点击在再出现一个弹窗时&#xff0c;就是如下效果。 查看Html,出现了遮罩层 Vue的建议是&#xff0c;不建议嵌套 Dialog&#xff0c;但实际上肯定存在嵌套 …

在基于Centos7的服务器上启用【Gateway】的【Clion Nova】(即 ReSharper C++ 引擎)

1. 检查启动报错日志&#xff0c;目录在 ~/.cache/JetBrains/CLion202x.x.x/log/backend.202x-xx-xx_xxxx.xxxx-err.log 2. 大致可能有两种报错 a. Process terminated. Couldnt find a valid ICU package installed on the system. 这个报错只需要装一下 libicu-devel 包即可…

短视频是如何一步步“蚕食”我们大脑的?

点击上方△腾阳 关注 转载请联系授权 你好&#xff0c;我是腾阳。 今天我们将深入探讨短视频是如何「蚕食」我们的大脑。 首先问下自己&#xff0c;你有多久没有看完一篇长文了&#xff1f; 你是否曾在清晨阳光中&#xff0c;被手机屏幕上短视频图标吸引&#xff0c;而忘记…

1、Jmeter、jdk下载与安装

1、访问官网&#xff0c;点击下载Jmeter http://jmeter.apache.org/ 2、在等待期间&#xff0c;下载对应的Java https://www.oracle.com/cn/java/technologies/downloads/#jdk23-windows 3、全部下载好&#xff0c;先安装JDK ![在这里插入图片描述](https://i-blog.csdnimg…

Hive刷分区MSCK

一、MSCK刷分区 我们平时通常是通过alter table add partition方式增加Hive的分区的&#xff0c;但有时候会通过HDFS put/cp命令或flink、flum程序往表目录下拷贝分区目录&#xff0c;如果目录多&#xff0c;需要执行多条alter语句&#xff0c;非常麻烦。Hive提供了一个"…

云手机+Facebook:让科技与娱乐完美结合

移动互联网时代&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;早已成为企业、品牌和组织竞相角逐的营销阵地。而云手机的出现&#xff0c;则为Facebook营销注入了新的活力&#xff0c;其独特的优势让营销活动更加高效、精准且灵活。本文将深入探讨云手机在Fa…

STM32完全学习——FATFS0.15移植SD卡

一、下载FATFS源码 大家都知道使用CubMAX可以很快的将&#xff0c;FATFS文件管理系统移植到单片机上&#xff0c;但是别的芯片没有这么好用的工具&#xff0c;就需要自己从官网下载源码进行移植。我们首先解决SD卡的驱动问题&#xff0c;然后再移植FATFS文件管理系统。 二、SD…

solr9.7 单机安装教程

1.环境要求:jdk11以上 2.下载wget https://dlcdn.apache.org/solr/solr/9.7.0/solr-9.7.0.tgz 3.解压 4.修改solr.in.sh配置 5.启动命令 bin/solr start 6.创建core bin/solr create -c <core名称> 注意:用solr ui界面创建&#xff0c;会提示找不到solrconfig.xml和m…

MySQLOCP考试过了,题库很稳,经验分享。

前几天&#xff0c;本人参加了Oracle认证 MySQLOCP工程师认证考试 &#xff0c;先说下考这个证书的初衷&#xff1a; 1、首先本人是从事数据库运维的&#xff0c;今年开始单位逐步要求DBA持证上岗。 2、本人的工作是涉及数据库维护&#xff0c;对这块的内容比较熟悉&#xff…

【MySQL】踩坑笔记——保存带有换行符等特殊字符的数据,需要进行转义保存

问题描述 从DBeaver中导出了部分业务数据的 insert sql&#xff0c;明明在开发、测试环境都可以一把执行通过&#xff0c;却在预发环境执行前的语法检查失败了&#xff0c;提示有SQL语法错误。 这条SQL长这样&#xff0c;default_sql是要在odps上执行的sql语句&#xff0c;提…

计算机网络 (8)物理层的传输方式

一、串行传输与并行传输 串行传输 定义&#xff1a;串行传输是一种数据传输方式&#xff0c;指的是逐位地按照顺序传输数据。在串行传输中&#xff0c;数据位逐个按照一定的顺序进行传输&#xff0c;可以通过单条线路或信道进行。特点&#xff1a; 逐位传输&#xff1a;串行传输…