Unix Man (Ñïðàâî÷íîå ðóêîâîäñòâî)



EXEC(3)


EXEC(3)
XENIX System V (21 èþíÿ 1987)

ÈÌß


execl, execv, execle, execve, execlp, execvp - âûïoëíeíèe ôaéëa

ÑÈÍÒÀÊÑÈÑ

int execl (path, arg0, arg1, ..., argn, (char*)0) char *path, *arg0, *arg1, ..., *argn;

int execv (path, argv) char *path, *argv[];

int execle (path, arg0, arg1, ..., argn, (char*)0, envp) char *path, *arg0, *arg1,..., *argn, *envp[];

int execve (path, argv, envp) char *path, *argv[], *envp[];

int execlp (file, arg0, arg1, ..., argn, (char*)0) char *file, *arg0, *arg1,..., *argn;

int execvp (file, argv) char *file, *argv[];

ÎÏÈÑÀÍÈÅ


Ôyíêöèè ceìeécòâa exec çaìeíÿþò òeêyùèé oápaç ïpoöecca íoâûì oápaçoì. Hoâûé oápaç èçâëeêaeòcÿ èç oáúeêòíoão ôaéëa, íaçûâaeìoão ôaéëoì oápaça ïpoöecca. Ïocëe ycïeøíoão âûïoëíeíèÿ âûçoâa exec íeâoçìoæeí âoçâpaò â còapûé oápaç ïpoöecca, ïocêoëüêy oí ïepeêpûò íoâûì oápaçoì.

Apãyìeíò path çaäaeò èìÿ ôaéëa, coäepæaùeão íoâûé oápaç ïpoöecca.

Apãyìeíò file òaêæe çaäaeò èìÿ ôaéëa, coäepæaùeão íoâûé oápaç ïpoöecca. Ecëè apãyìeíò file íe coäepæèò cèìâoë /, ïpeôèêc èìeíè ýòoão ôaéëa ïoëy÷aeòcÿ ïocëeäoâaòeëüíoé ïoäcòaíoâêoé èìeí êaòaëoãoâ, yêaçaííûx â çía÷eíèè ïepeìeííoé PATH (cì. ). Koìaíäíaÿ cpeäa ôopìèpyeòcÿ èíòepïpeòaòopoì êoìaíä (cì. ).

Apãyìeíòû arg0, arg1, ..., argn ÿâëÿþòcÿ yêaçaòeëÿìè ía còpoêè cèìâoëoâ, çaâepøaeìûe cèìâoëoì NUL. Còpoêè ïpeäcòaâëÿþò coáoé cïècoê apãyìeíòoâ, ïepeäaâaeìûx íoâoìy oápaçy ïpoöecca. Apãyìeíò arg0 äoëæeí ïpècyòcòâoâaòü âceãäa è äoëæeí yêaçûâaòü ía còpoêy, ëèáo coâïaäaþùyþ c path, ëèáo coäepæaùyþ ïocëeäíèé êoìïoíeíò path.

Apãyìeíò argv ÿâëÿeòcÿ ìaccèâoì yêaçaòeëeé ía cèìâoëüíûe còpoêè, çaâepøaeìûe cèìâoëoì NUL. Còpoêè ïpeäcòaâëÿþò coáoé cïècoê apãyìeíòoâ, ïepeäaâaeìûx íoâoìy oápaçy ïpoöecca. Apãyìeíò argv[0] äoëæeí ïpècyòcòâoâaòü âceãäa è äoëæeí yêaçûâaòü ía còpoêy, ëèáo coâïaäaþùyþ c path, ëèáo coäepæaùyþ ïocëeäíèé êoìïoíeíò path.

Apãyìeíò envp ÿâëÿeòcÿ ìaccèâoì yêaçaòeëeé ía cèìâoëüíûe còpoêè, çaâepøaeìûe cèìâoëoì NUL. Còpoêè ïpeäcòaâëÿþò coáoé êoìaíäíyþ cpeäy äëÿ íoâoão oápaça ïpoöecca. Ïocëeäíèé ýëeìeíò ìaccèâa äoëæeí áûòü íyëeâûì yêaçaòeëeì.

Ôaéëû, oòêpûòûe còapûì (âûçûâaþùèì) oápaçoì ïpoöecca, ocòaþòcÿ oòêpûòûìè è â íoâoì oápaçe ça ècêëþ÷eíèeì òex, y êoòopûx ôëaã çaêpûòèÿ ïpè exec paâeí 1; (cì. fcntl(3)). Óêaçaòeëü ïoçèöèè â òex ôaéëax, ÷òo ocòaþòcÿ oòêpûòûìè, íe èçìeíÿeòcÿ.

Cèãíaëû, ía êoòopûe â còapoì oápaçe ïpoöecca áûëa ycòaíoâëeía còaíäapòíaÿ peaêöèÿ (SIG_DFL) èëè èãíopèpoâaíèe (SIG_IGN), ocòaþòcÿ òaêèìè æe â íoâoì oápaçe. Ha cèãíaëû, êoòopûe â còapoì oápaçe áûëè oáúÿâëeíû ïepexâaòûâaeìûìè, â íoâoì oápaçe ycòaíaâëèâaeòcÿ còaíäapòíaÿ peaêöèÿ cècòeìû (cì. signal(3)).

Ecëè áèò ycòaíoâêè ïoëüçoâaòeëücêoão ID y ôaéëa oápaça ïpoöecca paâeí 1 (cì. ), ýôôeêòèâíûé ïoëüçoâaòeëücêèé ID ïpoöecca c íoâûì oápaçoì ïoëaãaeòcÿ paâíûì ïoëüçoâaòeëücêoìy ID ôaéëa. Aíaëoãè÷ío, ecëè áèò ycòaíoâêè ãpyïïoâoão ID y ôaéëa oápaça ïpoöecca paâeí 1, ýôôeêòèâíûé ãpyïïoâoé ID ïpoöecca c íoâûì oápaçoì ïoëaãaeòcÿ paâíûì ãpyïïoâoìy ID ôaéëa. Peaëüíûe ïoëüçoâaòeëücêèé è ãpyïïoâoé IDs ïpoöecca ocòaþòcÿ íeèçìeííûìè.

Ïpoôèëèpoâaíèe ïocëe exec çaïpeùeío (cì. ).

Hoâûé oápaç ïpoöecca íacëeäyeò oò còapoão oápaça ïo êpaéíeé ìepe, cëeäyþùèe aòpèáyòû:




Íà÷àëî  Íàçàä  Âïåðåä