EXEC 3 1993-11-29
目录
EXEC
NAMEæ»è§ (SYNOPSIS)
æè¿° (DESCRIPTION)
è¿åå¼ (RETURN VALUE)
æä»¶ (FILE)
é误 (ERROR)
å¦è§ (SEE ALSO)
å¼å®¹æ§ (COMPATIBILITY)
éµå¾ª (CONFORMING TO)
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½Linux论åmanæå页翻è¯è®¡åã
è·
NAME
execl, execlp, execle, execv, execvp - æ§è¡æä¸ªæä»¶
æ»è§ (SYNOPSIS)
#include <unistd.h>
extern char **environ;
int execl(
const char *path, const char
*arg, ...);
int execlp( const char *file, const char
*arg, ...);
int execle( const char *path, const char
*arg , ..., char * const
envp[]);
int execv( const char *path, char *const
argv[]);
int execvp( const char *file, char *const
argv[]);
æè¿° (DESCRIPTION)
exec ç³»å 彿° ç¨ æ°ç è¿ç¨ æ 象 ç½®æ¢ å½åç è¿ç¨ æ 象. æ¬ æå页 æè¿°ç è¿äº 彿° å®éä¸ æ¯ å¯¹ execve(2) 彿° ç å端(front-end) åè£. (å³äº å½åè¿ç¨ ç ç½®æ¢ è¯¦è§ execve ç æå页.)
è¿äº 彿° ç 第ä¸ä¸ª åæ° æ¯ å¾æ§è¡ ç¨åº ç è·¯å¾å(æä»¶å).
å¨ å½æ° execl, execlp, å execle ä¸, const char *arg 以å çç¥å· 代表 ç åæ° å¯è¢« è§ä¸º arg0, arg1, ..., argn. ä»ä»¬ åèµ·æ¥ æè¿°äº æå null ç»å°¾ç å符串 ç æé å表, å³ æ§è¡ç¨åº ç åæ°å表. ä½ä¸º 约å®, 第ä¸ä¸ª arg åæ° åºè¯¥ æå æ§è¡ç¨åºå èªèº«. åæ°å表 å¿é¡» ç¨ NULL æé ç»æ!
execv å execvp 彿° æä¾ æå null ç»å°¾ç å符串 ç æéæ°ç» ä½ä¸º æ°ç¨åº ç åæ°å表. ä½ä¸º 约å®, æéæ°ç» ä¸ ç¬¬ä¸ä¸ª åç´ åºè¯¥ æå æ§è¡ç¨åºå èªèº«. æéæ°ç» å¿é¡» ç¨ NULL æé ç»æ!
execle 彿° åæ¶ 说æäº æ§è¡è¿ç¨ ç ç¯å¢(environment), ä» å¨ NULL æé åé¢ è¦æ± ä¸ä¸ª éå åæ°, NULL æé ç¨äº ç»æ åæ°å表, æè说, argv æ°ç». è¿ä¸ª éå åæ° æ¯ æå null ç»å°¾ç å符串 ç æéæ°ç», ä» å¿é¡» ç¨ NULL æé ç»æ! å¶ä» 彿° ä» å½åè¿ç¨ ç environ å¤é¨åé ä¸ è·å æ°è¿ç¨ ç ç¯å¢.
æäº 彿° æ ç¹æ®ç è¯ä¹.
妿 æä¾ç æä»¶å ä¸ ä¸åå« ææ ç¬¦(/), 彿° execlp å execvp å° å shell 䏿 · æç´¢ æ§è¡æä»¶. æç´¢è·¯å¾ ç± ç¯å¢åé PATH æå®. 妿 该 åé ä¸åå¨, å ä½¿ç¨ ç¼ºçè·¯å¾ ‘‘:/bin:/usr/bin’’. å¦å¤, æäº é误 è¦ ç¹æ®å¤ç.
妿 对 æä¸ª æä»¶ ç è®¿é® éå° æç» ( execve è¿å EACCES), è¿äº 彿° å° å¨ æç´¢è·¯å¾ ä¸ ç»§ç» å¯»æ¾. 妿 æ²¡æ æ¾å° 符åç æä»¶, ä»ä»¬ è¿åæ¶ æ errno 置为 EACCES.
妿 æ æ³ è¯å« æä»¶é¦é¨ ( execve è¿å ENOEXEC), è¿äº 彿° å° ä»¥ æä»¶å ä½ä¸º 第ä¸ä¸ª åæ° è°ç¨ shell. (妿 è¿ä¸ª å°è¯ 失败 å°± ä¸å è¿è¡ æç´¢ äº.)
è¿åå¼ (RETURN VALUE)
ä»»ä½ exec 彿° è¿å å 表æ åçäº é误. è¿åå¼ æ¯ -1, å¨å±åé errno æåº é误类å.
æä»¶ (FILE)
/bin/sh
é误 (ERROR)
è¿äº 彿° åå¯è½ 失败, errno 被 置为 åºå½æ° execve(2) 设置ç åç§ é误类å.
å¦è§ (SEE ALSO)
sh(1), execve(2), fork(2), environ(5), ptrace(2)
å¼å®¹æ§ (COMPATIBILITY)
å¨ æäº å¶ä»ç³»ç» ä¸, 缺çè·¯å¾ (å½ ç¯å¢åé PATH ä¸åå¨) æ å½åç®å½ åå¨ /bin å /usr/bin åé¢, è¿æ¯ ä¸ºäº é²æ¢ ç¹æ´ä¼æ¨é©¬. Linux å¨è¿å¿ éåäº ä¼ ç»ç "å½åç®å½ä¼å" 缺çè·¯å¾.
å½ è¯å¾ æ§è¡ ç¨åº å¹¶ä¸ åç é误 ç æ¶å, execlp å execvp ç è¡ä¸º æ¯ åå² ä¹ æ¯, 使¯ 没æ è¿å¥ æ£å¼ææ¡£, 乿²¡æ 被 POSIX æ å 说æ. BSD (å¯è½ è¿æ å¶ä» ç³»ç») ä¸ è¿ç¨ èªå¨ è¿å¥ ç¡ç , 妿 åç ETXTBSY, ä»ä»¬ å°± éè¯. è Linux è§æ¤ä¸º 严éé误, å¹¶ä¸ ç«å³ è¿å.
ä¼ ç»ç åæ³ä¸, 彿° execlp å execvp å¿½ç¥ ææ é误, é¤äº ä¸è¿°ç é误, ENOMEM å E2BIG. 妿 åç è¿ä¸ç±» é误, ä»ä»¬ å°± è¿å. è ç°å¨ç åæ³æ¯, ä¸ä»ä» ä¸è¿°ç é误, ä»»ä½ é误 åå¯¼è´ å½æ° è¿å.
éµå¾ª (CONFORMING TO)
execl, execv, execle, execlp å execvp éµå¾ª IEEE Std1003.1-88 (‘‘POSIX.1’’).
[䏿çç»´æ¤äºº]
徿 <xuming@users.sourceforge.net>
[ä¸æçææ°æ´æ°]
2003/05/13
ãä¸å½Linux论åmanæå页翻è¯è®¡åã
http://cmpp.linuxforum.net
è·
æ¬é¡µé¢ä¸æçç±ä¸æ
man
æå页计åæä¾ã
䏿 man
æå页计åï¼https://github.com/man-pages-zh/manpages-zh