首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C中测试CLONE_VM、CLONE_FS和CLONE_IO的效果?

如何在C中测试CLONE_VM、CLONE_FS和CLONE_IO的效果?
EN

Stack Overflow用户
提问于 2015-10-12 02:18:03
回答 1查看 609关注 0票数 3

我试图理解这些标志的作用,我已经阅读了描述并做了一些谷歌搜索,但我不知道如何测试子进程和父进程在设置这些标志时的区别。我可以运行哪些C函数或linux命令来帮助我查看这些标志的效果?

EN

回答 1

Stack Overflow用户

发布于 2018-02-28 08:34:01

在我看来,CLONE_FS的一个很好的例子是对以下问题的另一种回答:“为什么cd必须是内置的shell?”

通常,当你运行一个进程时,它们只共享某些信息,最明显的是打开的文件描述符,而不是像“当前文件系统”这样的东西。

这意味着当cd作为进程实现时,对chdir()的调用将:

  1. 启动新进程

将执行该进程chdir()中的

  1. ,并且该进程将更改目录

  1. 该进程结束,并将控制权返回给一直位于其所在目录中的父进程

CLONE_FS (从Linux2.0开始)如果设置了CLONE_FS,调用者和子进程将共享相同的文件系统信息。这包括文件系统的根目录、当前工作目录和umask。调用进程或子进程对chroot(2)、chdir(2)或umask(2)的任何调用也会影响其他进程。

现在假设您已经设置了CLONE_FS。注意:“这包括...当前工作目录...”。这意味着对chdir()的调用不仅会影响当前正在运行的进程,还会影响当前名称空间中的进程。

我的所有描述都在这段的最后一句话中做了很大的总结:

如果未设置CLONE_FS,则为

...其中一个进程稍后执行的对chroot(2)、chdir(2)或umask(2)的调用不会影响另一个进程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33068474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档