EXEC 3 1993-11-29

中文man手册

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