如何获取符号链接的文件除法器?



我知道我可以用readlink读取符号链接,并使用llistxattr等对它进行操作,但我正在寻找它的文件描述符,以便我可以将其与flistxattr等一起使用。

我还检查了open手册,我知道O_NO_FOLLOW不会打开符号链接(但会失败,以便某些应用程序更安全(。

那么有没有办法获取符号链接的文件描述符呢?

有什么方法可以获取符号链接的文件描述符吗?

symlink(7)手册页:

获取引用符号链接的文件描述符

使用 O_PATH 和 O_NOFOLLOW 标志的组合打开(2( 生成一个文件描述符,该描述符可作为 dirfd 参数传递 系统调用,如 fstatat(2(、fchownat(2(、fchmodat(2(、linkat(2(, 和 readlinkat(2(,以便对符号链接本身进行操作 (而不是它引用的文件(。

默认情况下(即,如果未指定 AT_SYMLINK_FOLLOW 标志(,如果 name_to_handle_at(2( 应用于符号链接,它产生一个句柄 符号链接(而不是它引用的文件(。 一 然后可以获取符号链接的文件描述符(而不是 它所引用的文件(,O_PATH通过在 随后调用open_by_handle_at(2(。 同样,该文件描述符 可用于在前述系统调用中对 符号链接本身。

相关内容

  • 没有找到相关文章

最新更新