EXECVE(2) Linux Programmer's Manual EXECVE(2) NAME execve - (SYNOPSIS) #include int execve (const char *filename, char *const argv [], char *const envp[]); (DESCRIPTION) execve() filename . filename , "#! interpreter [arg]" . interpreter , , "interpreter [arg] filename". execve() , (text), (data), bss (stack) . PID , exec . . . ptrace , execve() SIGTRAP . a.out , stub, , Linux (linker) ld.so(8) , . ELF , PT_INTERP (interpreter) . libc5 /lib/ld- linux.so.1, GNU libc2 (libc6) /lib/ld- linux.so.2. (RETURN VALUE) execve() , -1, errno . (ERRORS) EACCES . EACCES . EACCES (mount) noexec. EPERM nosuid, , SUID SGID . EPERM , , SUID SGID . E2BIG . ENOEXEC , , . EFAULT filename . ENAMETOOLONG filename . ENOENT filename , , ELF . ENOMEM . ENOTDIR filename , ELF , . EACCES filename , . ELOOP filename , ELF . ETXTBUSY . EIO I/O . ENFILE . EMFILE . EINVAL ELF PT_INTERP (, ). EISDIR ELF . ELIBBAD ELF . CONFORMING TO SVr4, SVID, X/OPEN, BSD 4.3. POSIX #! , . SVr4 EAGAIN, EINTR, ELIBACC, ENOLINK, EMULTIHOP; POSIX ETXTBSY, EPERM, EFAULT, ELOOP, EIO, ENFILE, EMFILE, EINVAL, EISDIR ELIBBAD . (NOTES) SUID and SGID processes can not be ptrace()d SUID or SGID. #! shell , 127 . Linux SUID SGID . (SEE ALSO) ld.so(8), execl(3), fork(2) [] [] 2003/05/13 Linuxman http://cmpp.linuxforum.net man man https://github.com/man-pages-zh/manpages- zh Linux 2.0.30 3 September 1997 EXECVE(2)