迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

在 Bash 中 fork

作者:迹忆客 最近更新:2023/06/10 浏览次数:

本文介绍了用于fork新的异步子进程的 C/C++ 分叉系统调用的 Bash 等效项(即子 shell)的介绍性教程。


在 Bash 中fork

C/C++中的系统调用是创建一个新的进程,即调用进程的子进程。 创建新进程后,两个进程将异步执行。

两者都有自己的地址空间。 没有一个进程会在其执行结束之前等待其他进程结束; 然而,在 Bash 中,这些子进程被称为子 shell。

这些子 shell 并行运行,允许同时完成多个任务。 因此,Bash 中的 fork 功能可以通过创建新的子 shell 来实现。

要创建子 shell,我们遵循以下语法:

(sub_process) &

我们将要作为子进程执行的函数或任何代码行括在括号中,然后放置一个 & 符号。 这些括号内的所有语句都将构成一个子进程并作为子 shell 执行。

考虑以下示例:

在 Bash 脚本 1 中fork

在这个例子中,我们创建了函数 child_process() 并编写了一些语句。 后来,我们通过将它括在括号中并在末尾放置一个 & 来调用该函数。

这样,该函数将在子 shell 中调用。 Parent shell 将同时执行它的下一条语句。

在 Bash 输出 1 中fork

我们可以从输出中看到,父进程(因为它同时运行)在子进程可以处理其打印语句之前打印了下一条语句。

子shell中的变量

就变量而言,所有 shell,无论是父 shell 还是子 shell,都会有它们的变量。 由于两者都有自己的地址空间,进程最终会有单独的局部变量。

让我们看下面的例子:

在 Bash 脚本 2 中fork

在这个脚本中,我们在父进程中创建了一个变量 local_var 并设置了它的值。 稍后在 child_process 函数中,我们为子 shell 分配了一个新值。

创建子进程后,父进程打印变量的值,因此父进程的值将被打印。

输出将如下所示:

Bash 输出 2 中的fork

从上面的输出我们可以看出,局部变量在子进程的代码块之外是不可访问的。 即使是父进程也无法访问子进程设置的值。

上一篇:在 Bash 中继续下一行

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Bash 中继续下一行

发布时间:2023/06/10 浏览次数:161 分类:操作系统

这篇简短的文章是关于在 Linux 或 UNIX 中执行 Bash 脚本时对规则的解释。 在进入正题之前,让我们简单介绍一下 Bash 编程。在 Bash 中继续下一行

Bash 中 Syntax Error Near Unexpected Token 错误

发布时间:2023/06/09 浏览次数:67 分类:操作系统

本文演示如何识别和更正由于 Bash 脚本中的不可见字符而导致的意外令牌语法错误。Bash 中 Syntax Error Near Unexpected Token 错误 有时,语法上看起来完美无缺的 Bash 脚本不起作用。 你会得到一个模

修复 Bash 中未找到 Mkvirtualenv 命令的错误

发布时间:2023/06/09 浏览次数:102 分类:操作系统

本文演示了如何修复 Bash 中的 mkvirtualenv: command not found 错误。修复 bash 中的 mkvirtualenv: command not found 错误 如果你试图在 Python 中创建一个虚拟环境并看到类似这样的东西,

解决在 Bash(或 Cygwin)上找不到 R 命令

发布时间:2023/06/09 浏览次数:84 分类:操作系统

本文将帮助您了解错误消息以及如何解决或防止此类错误再次发生。解决bash: '\r': command not found With Notepad++ 不同的操作系统行为不同,Windows 通常是不同的。 如前所述,\r 字符的存在是导致此错

解决 Nodemon Command Not Found

发布时间:2023/06/09 浏览次数:122 分类:操作系统

本文将讨论如何解决和处理 nodemon command not found 错误。使用npm解决Nodemon Command Not Found 通过 npm,我们可以安装有用的功能库、包和工具来改进我们在 NodeJS 平台上的开发。

Bash 中的错误处理

发布时间:2023/06/09 浏览次数:134 分类:操作系统

本文介绍了 bash 中的错误处理。 请记住,了解退出代码、选项(如 errexit 和 trap)使我们能够构建健壮的脚本并更有效地管理 bash 问题。Bash 中的退出代码 基于退出代码处理错误是检测命令失败

Bash 中 Curl 命令的 Urlencode 数据

发布时间:2023/06/09 浏览次数:175 分类:操作系统

本文将教我们如何在 bash 中为 curl 命令对数据进行 urlencode。 让我们从 curl 命令的语法开始。Bash 中的 curl 命令 curl 命令的基本语法如下:

在 Bash 中获取绝对路径

发布时间:2023/06/09 浏览次数:96 分类:操作系统

在这篇 Bash 文章中,我们将学习在 Linux 中获取绝对路径的不同方法。 我们还将学习一些不同的 Linux 命令来获取文件的绝对路径。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便