在Linux系统中,readdir函数用于读取目录中的文件和子目录。readdir函数返回的文件名编码通常是UTF-8。然而,这取决于文件系统的类型和挂载选项。大多数现代Linux文件系统(如ext4、Btrfs、XFS等)都支持UTF-8编码,因此在这些文件系统上使用readdir时,返回的文件名通常是UTF-8编码的。
但是,如果文件系统不支持UTF-8编码,或者挂载选项指定了其他编码,那么readdir返回的文件名可能是其他编码。在这种情况下,您可能需要使用mbtowc和wcstombs等函数将文件名转换为UTF-8编码。