link
====

POSIX specification:
 https://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html

LSB specification:
 https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-link-1.html

Gnulib module: link

Portability problems fixed by Gnulib:

  * This function is missing on some platforms: mingw, MSVC 14.

  * This function fails to reject trailing slashes on non-directories on some platforms: FreeBSD 7.2, Solaris 11.3, Cygwin 1.5.x.

  * When the second argument is a dangling symlink, some platforms follow that link and create the destination rather than failing: IRIX 6.5.

Portability problems not fixed by Gnulib:

  * When the first argument is a symlink, some platforms create a hard-link to what the symlink referenced, rather than to the symlink itself.  Use linkat to force a particular behavior.