Filesystems ext2目录条目名是否保证在有效的文件系统上以null结尾?

Filesystems ext2目录条目名是否保证在有效的文件系统上以null结尾?,filesystems,ext2,hobby-os,Filesystems,Ext2,Hobby Os,我以为这是一个简单的问题,但我找不到答案。我主要阅读了以下规格: 它似乎没有提到目录条目的名称是否应该以null结尾。我认为它是未定义的。有一个名称字段,因此您可以轻松打印名称 ext2目录名是否保证以null结尾 我这样问是因为在我的业余操作系统上测试我的ext2驱动程序时,我注意到当我打印一些目录名时,一些垃圾字符出现在末尾。如果我只打印name_len字符,一切都很好,不过如果以null结尾就更好了 谢谢 我知道这是一个老问题,但对于其他可能会发现这一点的人来说: 不,不保证以null结

我以为这是一个简单的问题,但我找不到答案。我主要阅读了以下规格:

它似乎没有提到目录条目的名称是否应该以null结尾。我认为它是未定义的。有一个名称字段,因此您可以轻松打印名称

ext2目录名是否保证以null结尾

我这样问是因为在我的业余操作系统上测试我的ext2驱动程序时,我注意到当我打印一些目录名时,一些垃圾字符出现在末尾。如果我只打印name_len字符,一切都很好,不过如果以null结尾就更好了


谢谢

我知道这是一个老问题,但对于其他可能会发现这一点的人来说:

不,不保证以null结尾。事实上,只有当名称(name_len)的长度不是4的倍数时,才应该以null结尾

了解Linux内核,第3版:

。。。目录项的长度始终是4的倍数,因此,如有必要,会在文件名末尾添加空字符(\0)作为填充。name_len字段存储实际文件名长度

下面是一个例子。请注意,名称“sbin”没有空终止符,因为长度(4)是4的倍数: