实施FUSE时应为st_nlink设置什么属性?

问题描述 投票:0回答:1

实现FUSE库时,目录的属性应由getattr()回调定义。

但是要为此st_nlink设置什么?

在此示例中,他们将其设置为2,但我不知道确切原因。

https://github.com/lxc/lxcfs/blob/2ed933d959f54bee70985e260660a468ef9d21a1/src/proc_fuse.c#L87

st_nlink的作用是什么?我的用户空间FUSE目录应默认为1还是2?

例如,如果我定义一个名为“ / dev”的目录,并且其中包含“。”,“ ..”和“ snd”子条目,那么“ / dev”的st_nlink应该为2吗?因为硬链接(条目)是/ dev / snd和/ dev / snd/。/

linux fs fuse
1个回答
0
投票

有趣,我确实读过以下内容。

st_nlink是文件的硬链接数。此计数保持跟踪 这个文件中有多少目录具有条目。如果计数是 递减为零,则文件本身将尽快丢弃 没有任何过程仍然保持开放。符号链接不计入 总计。

https://www.gnu.org/software/libc/manual/html_node/Attribute-Meanings.html

我假设“文件”被使用了两次,因此它的st_nlink被设置为两个。

我还假定它用于重新计数设计https://en.wikipedia.org/wiki/Reference_counting

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.