首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >name_to_handle_at()逻辑

name_to_handle_at()逻辑
EN

Stack Overflow用户
提问于 2012-04-03 03:38:24
回答 2查看 962关注 0票数 3

关于新的系统调用name_to_handle_at()和open_to_handle_at(),我没有得到多少信息。有人能帮我一下吗。

谢谢

编辑。我只拿着这个

http://comments.gmane.org/gmane.linux.man/2158

EN

回答 2

Stack Overflow用户

发布于 2013-10-21 19:37:56

这些函数对于编写用户空间服务器非常有用。

例如,当实现NFS协议(它没有“开放”概念,或者文件描述符,而是依赖于持久文件标识符)时,可以使用name_to_handle_at函数以可移植的方式生成这个持久句柄。

然后将其发送到客户端,客户端将在稍后将其返回给服务器。然后,服务器可以使用open_to_handle_at执行操作。

人们可能会问,这比简单地在客户端和服务器之间发送完整的路径名更好。若干备选方案:

  • 文件系统可以使用内部(更紧凑)表示,而不是文件名(例如,基于inode)。当
  • 从句柄转到文件描述符时,需要完成的工作量可能更少。(不再遍历路径)在上面给出的场景中,
  • 减少了服务器上的资源消耗(无需跟踪服务器端打开的文件描述符)
票数 5
EN

Stack Overflow用户

发布于 2012-04-03 04:18:29

我倾向于假设需要这些函数来支持部分或全部添加到POSIX 2008中的*at()函数,例如openat()

#包括 int openat(int,const *path,intO标志,…);

openat()函数应与open()函数等效,但路径指定相对路径的情况除外。在这种情况下,要打开的文件相对于与文件描述符fd关联的目录而不是当前工作目录来确定。如果文件描述符是在没有O_SEARCH的情况下打开的,则函数将检查是否允许使用文件描述符基础目录的当前权限进行目录搜索。如果文件描述符是用O_SEARCH打开的,则函数将不执行检查。

相关职能包括:

  • faccessat()
  • fchmodat()
  • fchownat()
  • fstatat()
  • linkat()
  • mkdirat()
  • mkfifoat()
  • mknodat()
  • readlinkat()
  • renameat()
  • symlinkat()
  • unlinkat()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9986768

复制
相关文章

相似问题

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