FEXECVE(3) Linux Programmer's Manual FEXECVE(3)
fexecve - execute program specified via file descriptor
int fexecve(int fd, char *const argv, char *const envp);
fexecve() performs the same task as execve(2), with the difference that the file to be
executed is specified via a file descriptor, fd, rather than via a pathname. The file
descriptor fd must be opened read-only, and the caller must have permission to execute the
file that it refers to.
A successful call to fexecve() never returns. On error, the function returns, with a
result value of -1, and errno is set appropriately.
Errors are as for execve(2), with the following additions:
EINVAL fd is not a valid file descriptor, or argv is NULL, or envp is NULL.
ENOSYS The /proc file system could not be accessed.
fexecve() is implemented since glibc 2.3.2.
POSIX.1-2008. This function is not specified in POSIX.1-2001, and is not widely available
on other systems.
On Linux, fexecve() is implemented using the proc(5) file system, so /proc needs to be
mounted and available at the time of the call.
This page is part of release 3.25 of the Linux man-pages project. A description of the
project, and information about reporting bugs, can be found at http://www.ker-
Linux 2009-02-04 FEXECVE(3)