Портирование кода Unix с функцией symlink () в Windows - PullRequest
2 голосов
/ 24 июня 2011

Я портирую код C / C ++ из Unix в Windows, в котором используется функция symlink ().

Насколько я понимаю, современные файловые системы Windows имеют эквивалент символических ссылок.

Какой самый лучший / самый переносимый способ заменить функцию symlink (), чтобы один и тот же код работал на обеих платформах?

Ответы [ 3 ]

2 голосов
/ 25 июня 2011

Начиная с Windows Vista, есть функция для создания настоящих символических ссылок: CreateSymbolicLink

Обратите внимание, что соединения, упомянутые в других ответах, поддерживают только каталоги, и даже с более новой функцией символические ссылки Windows требуют указания, является ли цель каталогом или файлом. Таким образом, вы не обязательно сможете получить тривиальную функцию «замены» symlink().

2 голосов
/ 24 июня 2011

Базовая технология в Windows называется Точки соединения . Библиотека Boost Filesystem является кроссплатформенной и может создавать символические ссылки:

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

0 голосов
/ 24 июня 2011
...