【问题标题】:Porting Unix code with symlink() function to Windows将带有 symlink() 函数的 Unix 代码移植到 Windows
【发布时间】:2011-06-24 19:39:00
【问题描述】:

我正在将 C/C++ 代码从 Unix 移植到使用 symlink() 函数的 Windows。

据我了解,最近的 Windows 文件系统具有等效的符号链接。

替换 symlink() 函数的最佳/最便携方式是什么,因此相同的代码可以在两个平台上运行?

【问题讨论】:

  • 您甚至可以在较旧的 Windows、Win2k 甚至 NT4 上使用 NTFS 连接。

标签: windows unix porting symlink


【解决方案1】:

从 Windows Vista 开始,有一个函数可以创建真正的符号链接:CreateSymbolicLink

请注意,其他答案中提到的 Junctions 仅支持目录,即使使用较新的功能,Windows 符号链接也需要您指定目标是目录还是文件。所以你不一定能得到一个微不足道的“直接替换”symlink() 函数。

【讨论】:

    【解决方案2】:

    Windows 上的底层技术称为Junction points。 Boost 文件系统库是跨平台的,可以创建符号链接:

    http://www.boost.org/doc/libs/1_46_1/libs/filesystem/v3/doc/reference.html#create_symlink

    【讨论】:

    • @Timo Geusch:感谢您将链接更新到最新版本 - 当您进行编辑时,我正在路上。
    【解决方案3】:

    Junctions 似乎是来自similar questions 的答案。

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 2015-08-20
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 2013-02-28
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多