other languages
other sections
EXECVE(2) | Linux Programmer's Manual | EXECVE(2) |
NAME¶
execve - 執行程式總覽 (SYNOPSIS)¶
#include <unistd.h>描述 (DESCRIPTION)¶
execve() 執行 filename 指出的 程式. filename 必須 是 二進制可執行檔案, 或者 以 " #! interpreter [arg]" 行 開始的 稿本檔案. 後者的 interpreter 必須是 某個 可執行檔案 的 有效 路徑, 這個 可執行檔案 自身 不能是 稿本程式, 調用 形式 是 " interpreter [arg] filename".返回值 (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.另見 (SEE ALSO)¶
ld.so(8), execl(3), fork(2)[中文版維護人]¶
徐明 <xuming@users.sourceforge.net>[中文版最新更新]¶
2003/05/13《中國Linux論壇man手冊頁翻譯計劃》¶
http://cmpp.linuxforum.net3 September 1997 | Linux 2.0.30 |