首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >umask函数是核函数吗?

umask函数是核函数吗?
EN

Unix & Linux用户
提问于 2018-11-23 09:45:02
回答 2查看 252关注 0票数 0

我假设umask()函数是一个:

包含通常称为文件创建掩码的变量的shell函数。

但是我错了,因为umask()不是一个shell函数,并且不包含这样的变量。

如果umask()函数不是"shell函数“,那么将它命名为”内核函数“是真的吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2018-11-23 21:45:45

没有所谓的“内核函数”,除非您指的是

umask(2)是一个系统呼叫。自从时间的黎明 1之后,情况就这样了。

但它不一定是这样的--你可以通过让实际的位掩码成为内存块的一部分来实现它,这些内存块总是被映射在同一个地址,并通过execve(2)保存下来,并让打开(2)、creat(2)等等用户土地包装从那里获取它。这将是符合POSIX的。

1在最初的实现中,函数集的u.u_cmask字段仅在其他地方使用--在“生成一个新文件”的maknode()函数中。

票数 1
EN

Unix & Linux用户

发布于 2018-11-23 10:08:37

umask手册上写着:

通过叉(2)创建的子进程继承其父进程的umask。execve(2)使umask保持不变。

因此,由于它在调用exec (execve)之后仍然存在,所以必须在内核中实现它,因为所有exec调用都会替换正在运行的程序(除了一些存储在内核中的结构)。

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

https://unix.stackexchange.com/questions/483636

复制
相关文章

相似问题

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