linkat(2)



LINKAT(2)                  Linux Programmer's Manual                 LINKAT(2)

NAME
       linkat - create a file link relative to directory file descriptors

SYNOPSIS
       #include <unistd.h>

       int linkat(int olddirfd, const char *oldpath,
                  int newdirfd, const char *newpath, int flags);

DESCRIPTION
       The  linkat()  system call operates in exactly the same way as link(2),
       except for the differences described in this manual page.

       If the pathname given in oldpath is relative, then  it  is  interpreted
       relative  to  the directory referred to by the file descriptor olddirfd
       (rather than relative to the current working directory of  the  calling
       process, as is done by link(2) for a relative pathname).

       If  the  pathname given in oldpath is relative and olddirfd is the spe-
       cial value AT_FDCWD, then oldpath is interpreted relative to  the  cur-
       rent working directory of the calling process (like link(2)).

       If the pathname given in oldpath is absolute, then olddirfd is ignored.

       The interpretation of newpath is as for oldpath, except that a relative
       pathname  is  interpreted  relative to the directory referred to by the
       file descriptor newdirfd.

       The flags argument is currently unused, and must be specified as 0.

RETURN VALUE
       On success, linkat() returns 0.  On error, -1 is returned and errno  is
       set to indicate the error.

ERRORS
       The  same  errors  that  occur for link(2) can also occur for linkat().
       The following additional errors can occur for linkat():

       EBADF  olddirfd or newdirfd is not a valid file descriptor.

       ENOTDIR
              oldpath is a relative path and olddirfd  is  a  file  descriptor
              referring  to a file other than a directory; or similar for new-
              path and newdirfd

NOTES
       See openat(2) for an explanation of the need for linkat().

CONFORMING TO
       This system call is non-standard but is proposed  for  inclusion  in  a
       future revision of POSIX.1.

VERSIONS
       linkat() was added to Linux in kernel 2.6.16.

SEE ALSO
       link(2), openat(2), path_resolution(2)

Linux 2.6.16                      2006-04-10                         LINKAT(2)

Man(1) output converted with man2html
list of all man pages