winapi - 在 BY_HANDLE_FILE_INFORMATION 结构中 nNumberOfLinks 是什么
问题描述
在文档中,他们提到 nNumberOfLinks 是“指向此文件的链接数。对于 FAT 文件系统,此成员始终为 1。对于 NTFS 文件系统,它可以大于 1。”
文件的链接数意味着什么?如果该文件用作 3 个符号链接的目标,则 nNumberOfLinks 为 3 。或者它还有其他含义。
解决方案
查看 ReactOS 源代码中 GetFileInformationByHandle 的实现, https: //doxygen.reactos.org/da/d02/dll_2win32_2kernel32_2client_2file_2fileinfo_8c_source.html我们可以看到字段 nNumberOfLinks 填充如下(删除了错误检查)。
errCode = NtQueryInformationFile(hFile,
&IoStatusBlock,
&FileStandard,
sizeof(FILE_STANDARD_INFORMATION),
FileStandardInformation);
lpFileInformation->nNumberOfLinks = FileStandard.NumberOfLinks;
根据 FILE_STANDARD_INFORMATION https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ns-wdm-_file_standard_information的文档。
链接数
文件的硬链接数。
所以 nNumberOfLinks 将是硬链接的数量,正如 dxiv 在评论中提到的那样。
推荐阅读
- sql - 使用了错误的 SQL 索引
- api - 从 xml 数组创建 GET 参数
- java - DatabaseHandler中的DatabaseHandler()不能应用于
- html - 如何更改语言和输入的开始日期?
- c++ - 命令行参数,cant 或两个变量
- wordpress - 应针对 woocommerce 中的 2 个不同类别应用两组不同的折扣
- python - 切菜板算法
- ruby - 检索步骤定义文件中的标记字符串
- ios - 将 IPA 上传到 App Store 时出错
- java - JDK8 RMI 服务器在 JDK9 或 JDK10 中不工作 - ClassNotFoundException