int link(int dir_fd, const char *path, int path_len, const char *target, int target_len);
This syscall creates hard links, the paths are not dereferenced in the case of being symlinks.
The syscall returns 0 or -1 on failure, with the following errno:
EACCES: Bad memory addresses.
EINVAL: The passed path and target lengths are way too big.
EIO: Internal error.