iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux中fork和exec有哪些区别
  • 166
分享到

linux中fork和exec有哪些区别

2023-06-30 14:06:09 166人浏览 薄情痞子
摘要

这篇文章主要介绍“linux中fork和exec有哪些区别”,在日常操作中,相信很多人在linux中fork和exec有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中fork和exec有哪

这篇文章主要介绍“linux中fork和exec有哪些区别”,在日常操作中,相信很多人在linux中fork和exec有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中fork和exec有哪些区别”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

linux中fork和exec的区别:1、fork用于创建一个新的进程,称为子进程,而exec则是用指定的程序替换当前进程的全部内容;2、exec的前后进程id没有改变,而fork重新创建了子进程后id改变了。

教程操作环境:linux7.3系统、Dell G3电脑。

linux中fork和exec有什么区别

fork和exec都是和进程相关的调用.

fork

调用fork可以创建一个新的进程称为子进程, 调用fork函数的进程称为父进程, 子进程的所有内容都和父进程相同, 除了pcd(进程控制模块), 如果这两个进程都没有对内存做写操作的话, 那么两个进程共享调用fork函数的进程的内存页, 这样表面上看fork创建进程比exec创建进程快. 但只要两个进程其中一个对内存做了修改, 那么在修改之前, 就会把内存页复制一份给子进程用.

exec

调用exec创建进程, 实际上不是创建进程, 更准确的说是加载可执行文件, 调用exec后会把exec中指定的可执行文件加载到调用exec的进程的空间内, 并把调用exec的进程的内存更新为exec中指定的可执行文件的内容.

区别

fork主要是Linux用来建立新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的全部内容。因此exec()系列函数常常在前三个函数使用以后调用,来建立一个全新的程序运行环境。Linux用init进程启动其余进程的过程通常都是这样的

fork是最简单的调用,不须要任何参数,仅仅是在建立一个子进程并为其建立一个独立于父进程的空间。

我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序(比如在我们写程序时需要使用我们之前的写过的某个程序的功能,通过该方式直接去调用一个可执行程序可以大大的简化我们的程序)。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。

父进程通过fork()的方式产生一个一模一样的子进程,创建出来的子进程再以exec函数的方式来执行其实际要执行的进程,最终就成为一个可以执行某些特定功能的子进程。

一个进程一旦调用exec类函数,它本身就“死亡”了,系统把代码段替换成新的程序的代码,废弃原有的数据段和堆栈段,并为新程序分配新的数据段与堆栈段,唯一留下的,就是进程号,也就是说,对系统而言,还是同一个进程,不过已经是另一个程序了。即调用exec族函数后,其后面的程序都不会在执行了。

到此,关于“linux中fork和exec有哪些区别”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: linux中fork和exec有哪些区别

本文链接: https://www.lsjlt.com/news/329567.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中fork和exec有哪些区别
    这篇文章主要介绍“linux中fork和exec有哪些区别”,在日常操作中,相信很多人在linux中fork和exec有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中fork和exec有哪...
    99+
    2023-06-30
  • VBS中Run和Exec有哪些区别
    这篇文章主要介绍VBS中Run和Exec有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Set ws = CreateObject("WScript.Shell&quo...
    99+
    2023-06-08
  • QDialog中exec与open的区别有哪些
    这篇文章主要讲解了“QDialog中exec与open的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QDialog中exec与open的区别有哪些”吧!1. 两者区别的现象注意:...
    99+
    2023-07-05
  • linux中at和crontab有哪些区别
    这篇“linux中at和crontab有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“linux中at和cronta...
    99+
    2023-07-02
  • JavaScript中match和exec有什么区别
    JavaScript中match和exec有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整...
    99+
    2023-06-14
  • linux中x64和x86有哪些区别
    这篇文章主要为大家展示了“linux中x64和x86有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中x64和x86有哪些区别”这篇文章吧。区别:1、寄存器分配不同,x64有1...
    99+
    2023-06-26
  • linux中awk和sed有哪些区别
    这篇文章主要讲解了“linux中awk和sed有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中awk和sed有哪些区别”吧!linux中awk和sed的区别:1、sed是...
    99+
    2023-06-30
  • linux中ext4和ext3有哪些区别
    这篇文章主要讲解了“linux中ext4和ext3有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中ext4和ext3有哪些区别”吧!区别:1、ext3有32000个子目录...
    99+
    2023-06-30
  • linux中poll和select有哪些区别
    这篇文章主要讲解了“linux中poll和select有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中poll和select有哪些区别”吧!linux中poll和sele...
    99+
    2023-07-02
  • linux中xfs和ext4有哪些区别
    本篇内容主要讲解“linux中xfs和ext4有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中xfs和ext4有哪些区别”吧!区别:1、单个文件的大小,EXT4可以是16GB...
    99+
    2023-06-30
  • linux中sed和awk有哪些区别
    这篇文章主要讲解了“linux中sed和awk有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux中sed和awk有哪些区别”吧!区别:1、sed是流编辑器,而awk是文本格式...
    99+
    2023-06-30
  • linux中vsz和rss有哪些区别
    这篇文章主要介绍“linux中vsz和rss有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux中vsz和rss有哪些区别”文章能帮助大家解决问题。linux中vsz和rss的区别:1...
    99+
    2023-07-02
  • linux中ex3和ex4有哪些区别
    这篇文章主要介绍“linux中ex3和ex4有哪些区别”,在日常操作中,相信很多人在linux中ex3和ex4有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中ex3和ex4有哪些区别”的疑...
    99+
    2023-06-29
  • linux中sudo和su有哪些区别
    本篇内容介绍了“linux中sudo和su有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:1、sudo是以root用户方式执行...
    99+
    2023-06-30
  • linux和ubuntu有哪些区别
    这篇文章主要为大家展示了“linux和ubuntu有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux和ubuntu有哪些区别”这篇文章吧。linux和ubuntu的区别:1、li...
    99+
    2023-06-22
  • Unix和Linux有哪些区别
    这篇文章主要为大家展示了“Unix和Linux有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unix和Linux有哪些区别”这篇文章吧。Unix和Li...
    99+
    2024-04-02
  • linux和macos有哪些区别
    这篇文章将为大家详细讲解有关linux和macos有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:1、linux是开源的免费系统,可以在很多种设备上运行也允许开发者二次开发,而macos是苹...
    99+
    2023-06-26
  • freebsd和linux有哪些区别
    这篇文章主要介绍“freebsd和linux有哪些区别”,在日常操作中,相信很多人在freebsd和linux有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”freebsd和linux有哪些区别”的疑...
    99+
    2023-06-22
  • nuttx和linux有哪些区别
    这篇“nuttx和linux有哪些区别”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nuttx和linux有哪些区别”文章吧...
    99+
    2023-07-02
  • linux中vi和cat的区别有哪些
    本篇内容主要讲解“linux中vi和cat的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中vi和cat的区别有哪些”吧!vi和cat的区别:1、cat是一个文本打印的命令,...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作