symlink(2) System Calls Manual symlink(2) symlink, symlinkat - (libc -lc) #include int symlink(const char *target, const char *linkpath); #include /* AT_* */ #include int symlinkat(const char *target, int newdirfd, const char *linkpath); glibc ( feature_test_macros(7)): symlink(): _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L || /* glibc <= 2.19: */ _BSD_SOURCE symlinkat(): glibc 2.10: _POSIX_C_SOURCE >= 200809L glibc 2.10: _ATFILE_SOURCE symlink() linkpath target. . .. ( ) . ( ) . ( protected_symlinks proc(5)) (S_ISVTX). linkpath . symlinkat() symlinkat() symlink() . linkpath newdirfd ( symlink() ). linkpath newdirfd AT_FDCWD linkpath ( symlink()). linkpath newdirfd . openat(2) symlinkat(). . -1 errno . EACCES linkpath linkpath . ( path_resolution(7).) EBADF (symlinkat()) linkpath newdirfd AT_FDCWD . EDQUOT . . EEXIST linkpath . EFAULT target linkpath . EIO /. ELOOP linkpath. ENAMETOOLONG target linkpath . ENOENT linkpath target linkpath . ENOENT (symlinkat()) linkpath newdirfd . ENOMEM . ENOSPC . ENOTDIR linkpath . ENOTDIR (symlinkat()) linkpath newdirfd . EPERM linkpath . EROFS linkpath . POSIX.1-2024. symlink() SVr4 4.3BSD POSIX.1-2001. symlinkat() POSIX.1-2008. 2.6.16 glibc 2.4. glibc symlinkat() glibc symlink(). linkpath glibc /proc/self/fd newdirfd. target. ( ). link(2). ln(1), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2), path_resolution(7), symlink(7) 3 . . : . 6.18 8 2026 symlink(2)