execveat(2) System Calls Manual execveat(2) execveat - (libc -lc) #include /* Definition of AT_* constants */ #include int execveat(int dirfd, const char *path, char *const _Nullable argv[], char *const _Nullable envp[], int flags); execveat() dirfd path. execve(2) . path dirfd ( execve(2) ). path dirfd AT_FDCWD path ( execve(2)). path dirfd. path AT_EMPTY_PATH dirfd ( dirfd ). flags : AT_EMPTY_PATH path dirfd ( O_PATH open(2)). AT_SYMLINK_NOFOLLOW dirfd path NULL ELOOP. execveat(). -1 errno . execve(2) execveat(). execveat(): dirfd AT_FDCWD . EINVAL flags. ELOOP flags AT_SYMLINK_NOFOLLOW dirfd path NULL . ENOENT dirfd path ( "#!") dirfd O_CLOEXEC . BUGS. ENOTDIR path dirfd . . 3.19 glibc 2.34. openat(2) execveat() fexecve(3) /proc . argv[0] /dev/fd/N /dev/fd/N/P N dirfd. AT_EMPTY_PATH. dirfd path P path. fexecve(3) execveat() dirfd. ( BUGS.) ENOENT : execveat(fd, "", argv, envp, AT_EMPTY_PATH); . execveat() . execve(2), openat(2), fexecve(3) 3 . . : . 6.18 8 2026 execveat(2)