vfork() 系统调用的返回值

2023-11-26

考虑以下代码:

int main()
{
  int pid;
  pid=vfork();
  if(pid==0)
     printf("child\n");
  else
     printf("parent\n");
  return 0;
  }

的情况下vfork()父进程和子进程使用的地址空间是相同的,因此变量 pid 的单个副本应该存在。现在我无法理解这个 pid 变量如何可以有两个返回值vfork()即孩子为零,父母非零?

的情况下fork()地址空间也会被复制,并且每个子级和父级中有两个 pid 变量的副本,因此我可以理解在这种情况下,两个不同的副本可以具有不同的返回值fork()但无法理解vfork()pid 如何有两个返回值vfork()?


没有2本。你打电话时vfork当孩子做它的事情时,父母冻结了(直到它调用_exit(2) or execve(2))。所以在任何一个时刻,只有一个pid多变的。

顺便说一句,你所做的事情是不安全的。标准写得很清楚:

vfork() 函数应与 fork() 等效,不同之处在于这 行为未定义如果 vfork() 创建的进程要么 修改除用于存储的 pid_t 类型变量以外的任何数据 vfork() 的返回值,或从其中的函数返回 vfork() 被调用,或者调用任何其他函数成功之前 调用 _exit() 或 exec 系列函数之一。

作为第二个旁注,vfork已被删除SUSv4- 使用它确实没有意义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vfork() 系统调用的返回值 的相关文章

  • 与 MinGW 的静态和动态/共享链接

    我想从一个简单的链接用法开始来解释我的问题 假设有一个图书馆z它可以编译为共享库 libz dll D libs z shared libz dll 或静态库 libz a D libs z static libz a 让我想要链接它 然后
  • 在 LINQ 查询中进行转换

    是否可以在 LINQ 查询中进行强制转换 为了编译器的缘故 下面的代码并不糟糕 但最好将其放入一个查询中 Content content dataStore RootControl as Controls Content List
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • 无法在 CUDA 中找到 1 到 100 数字的简单和?

    我正在研究使用 CUDA 的图像处理算法 在我的算法中 我想使用 CUDA 内核找到图像所有像素的总和 所以我在cuda中制作了内核方法 来测量16位灰度图像的所有像素的总和 但我得到了错误的答案 所以我在cuda中编写了一个简单的程序来查
  • 使用 POST 的 HttpWebRequest 的性能

    我有一个用于测试网络服务的小工具 它可以使用 POST 或 GET 调用 Web 服务 使用POST的代码是 public void PerformRequest WebRequest webRequest WebRequest Creat
  • CMake(Ninja 后端)使用 /MT 编译

    我有一个类似的问题CMake 使用 MT 而不是 MD 进行编译 https stackoverflow com questions 14172856 cmake compile with mt instead of md但有一些差异 我正
  • 如何在 C++ 中为指针“this”赋值

    在函数中 如何分配this一个新的价值 您可以分配对象this点于 this XY 但你不能分配直接值this this XY Error Expression is not assignable
  • 大量互斥体对性能的影响

    假设我有一个包含 1 000 000 个元素的数组 以及多个工作线程 每个线程都操作该数组中的数据 工作线程可能会使用新数据更新已填充的元素 但每个操作仅限于单个数组元素 并且独立于任何其他元素的值 使用单个互斥锁来保护整个数组显然会导致高
  • 重载算术运算符

    赋值运算符可以声明为 T 运算符 const t 在类中 但不能以这种方式定义算术运算符 它必须是友元函数 我不明白为什么 你能解释一下吗 算术运算符不必须是友元 那么你可以这样定义 MyClass MyClass operator con
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 使用任一默认捕获模式时,这是通过复制捕获还是 (*this) 通过引用捕获?是一样的吗?

    当我看到以下工作时我有点困惑 struct A void g void f g 但后来我发现this https stackoverflow com a 16323119 5825294答案非常详细地解释了它是如何工作的 本质上 它归结为t
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • C# 多维数组解析

    我有一个多维数组 内容在调试器中看起来像这样 数组设置为 String s new String 6 4 A B Yes C A B Yes C A B No C A B Yes C A B Yes C A B Yes C A B No C
  • 跟踪白色背景中的白球(Python/OpenCV)

    我在 Python 3 中使用 OpenCV 来检测白场上的白 黑球 并给出它的精确 x y 半径 和颜色 我使用函数 cv2 Canny 和 cv2 findContours 来找到它 但问题是 cv2 Canny 并不总是检测到圆的完整
  • java有类似C#的属性吗? [复制]

    这个问题在这里已经有答案了 C 属性 我的意思是 get 和 set 方法 是一个非常有用的功能 java 也有类似 C 的属性吗 我的意思是我们如何在 java 中实现类似以下 C 代码的内容 public string Name get
  • 稀疏矩阵超定线性方程组c/c++库

    我需要一个库来解决 Ax b 系统 其中 A 是一个非对称稀疏矩阵 每行有 8 个条目 而且可能很大 我认为实现双共轭梯度的库应该没问题 但我找不到一个有效的库 我尝试过 iml 但 iml sparselib 包中缺少一些标头 有小费吗
  • 如何将模型绑定到动态创建的类 nancyfx

    首先感谢任何愿意查看我的问题的人 我对 Nancyfx 还很陌生 在尝试将 JSON 有效负载绑定到动态创建的类时遇到问题 我按照这篇文章中的代码动态创建了该类 在C 中动态创建一个类 https stackoverflow com que
  • 将同步 zip 操作转换为异步

    我们有一个现有的库 其中一些方法需要转换为异步方法 但是我不确定如何使用以下方法执行此操作 错误处理已被删除 该方法的目的是压缩文件并将其保存到磁盘 请注意 zip 类不公开任何异步方法 public static bool ZipAndS

随机推荐

  • 如何遍历 HTML 元素中的所有属性?

    我需要 JavaScript 代码来迭代 HTML 元素中填充的属性 This 元素 属性ref 说我可以通过索引访问它 但没有指定它是否得到很好的支持并且可以使用 跨浏览器 或者还有其他方法吗 不使用任何框架 如 jQuery Proto
  • CSS 列数不受尊重

    这里有一个类似的问题 没有真正的答案 CSS 列错误 5 列计数仅显示 4 个 带图像 我在用着column count显示列中的元素 在本例中是一组section元素 但无论使用什么元素 显然 都会发生这种情况 问题是 Chrome 和
  • 是否有通过电子邮件发送每日 C# 提示和技巧的网站? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我订阅了来自 www sq
  • Python BeautifulSoup 提取特定 URL

    是否可以只获取特定的 URL Like a href http www iwashere com washere html next a span class class span a href http www heelo com hel
  • 如何使用 Jackson 和包装对象反序列化/序列化字节数组

    我有以下两个课程 public class User private String name private Secret secret public User JsonProperty name String name JsonPrope
  • 设置 UISwipeGestureRecognizer 的方向

    我想将简单的滑动手势识别添加到我基于视图的 iPhone 项目中 应识别所有方向 右 下 左 上 的手势 UISwipeGestureRecognizer 的文档中指出 您可以通过使用按位或操作数指定多个 UISwipeGestureRec
  • 使用ant-contrib,如何使用endsWith?

    ant contrib 最新版本是ant contrib 1 0b3 jar http ant contrib sourceforge net tasks tasks more conditions html 该文件显示endsWith状况
  • PHP中什么时候不会调用__destruct?

    class MyDestructableClass function construct print nIn constructor n this gt name MyDestructableClass function destruct
  • 如何使用 NEHotspotHelper 获取可用的 WiFi 列表(IOS、objective-c)

    我已经这样做了 1 在Apple开发者页面添加IOS证书 2 在 Apple 开发者页面中添加启用网络扩展的标识符 App ID 3 在 Apple Developer 页面中添加配置文件 4 创建Xcode项目并输入在苹果开发者页面上制作
  • Hibernate:获取太多行

    我在使用 Hibernate 从数据库获取行时遇到问题 当我只想获取一行时 我会收到 20 行 当我想从大约 1 5k 行的表中获取所有行时 我会收到 15 2k 行 该表的实体类具有复合主键 这是我获取所有行的代码 Criteria cr
  • PSR-4 自动加载不起作用

    我创建了一个app modules目录并使用 PSR 4 自动加载它 如下所示 psr 4 Modules app modules 我也做了composer dumpautoload 我有以下目录结构 app modules ModuleN
  • 将消息从存储过程返回到 C# 应用程序

    我有一个添加用户的存储过程 并且在添加的每个权限中 我想开始构建成功消息 我的存储过程运行良好 但如何将该成功消息返回到我的应用程序中的消息对话框中 我想在我的 C 应用程序的消息框中显示以下 text DECLARE text NVARC
  • 我如何找出哪个 GWT 元素具有焦点?

    我想知道 在 GWT 中 哪个元素当前具有焦点 基本上我正在我们的应用程序中开发虚拟键盘 除 tab 键外 所有键都工作正常 如果我获得焦点元素 那么我可以计算出 Tab 键代码 在 javascript 和 jquery 中我们可以使用d
  • 访问前置摄像头。 iPhone/iPod 4

    嘿 我想知道如何访问前置摄像头 也许有一些指南 但我不需要所有按钮等 我只想从面对的相机访问 我不需要按钮来拍照或类似的东西 您可以访问前置摄像头 如下所示 picker cameraDevice UIImagePickerControll
  • 如何从 Laravel 中的作业 ID 获取排队的作业?

    有没有办法从 Laravel 中的作业 ID 获取排队的作业 将作业添加到队列时 我存储作业 ID 稍后在某个时间点 处理队列中的作业有延迟 我想从队列中删除该作业 如果我可以使用作业 ID 获取队列中的作业 我可以使用delete 方法将
  • 如何使用HttpClient发布数据?

    我有this来自 Nuget 的 HttpClient 当我想获取数据时 我这样做 var response await httpClient GetAsync url var data await response Content Rea
  • Twitter Bootstrap 3 navbar-collapse - 设置折叠宽度

    我使用 Twitter Bootstrap 3navbar collapse http bootply com 91119 当您减小页面宽度时 菜单会分成两行 然后折叠 我不分成两行 但想做折叠 我该怎么办 您可以减少导航栏折叠的点 Opt
  • Coq 中的 `destruct` 和 `case_eq` 策略有什么区别?

    我明白了destruct因为它将归纳定义分解为其构造函数 我最近看到case eq我不明白它有什么不同 1 subgoals n nat k nat m M t nat H match M find elt nat n m with Som
  • HTML 和 CSS 不规则三角形图像库

    我需要创建一个图像库 其中各个图像是不规则三角形 强调不规则 我找到了关于如何通过 html 和 css 实现三角形图像而不修改图像本身的有限示例 我在 CodePen 中找到了一个例子https codepen io thebabydin
  • vfork() 系统调用的返回值

    考虑以下代码 int main int pid pid vfork if pid 0 printf child n else printf parent n return 0 的情况下vfork 父进程和子进程使用的地址空间是相同的 因此变