Linux / Unix Каманда: execvp

імя

execl, функцыі маюць, execle, execv, execvp - выканаць файл

канспект

#include

ехЬегп сімвал ** атачаць;

INT execl (Const сімвал * шлях, Const сімвал * АГ, ...);
ИНТ функцыі маюць (Const сімвал * файл, Const сімвал * ага, ...);
INT execle (Const сімвал * шлях, Const сімвал * АГ, ..., сімвал * Const envp []);
INT execv (Const сімвал * шлях, сімвал * Const ARGV []);
INT execvp (Const сімвал * файл, сімвал * Const ARGV []);

Агляд Command

Ехес сямейства функцый замяняе бягучы лад працэсу з новым працэсам. Функцыі , апісаныя тут , з'яўляюцца пярэднімі канцамі для функцыі execve (2).

Пачатковы аргумент гэтых функцый з'яўляецца поўным імем файла, які павінен быць выкананы.

Const сімвал * Arg і наступныя эліпсы ў execl, і функцый маюць функцыі execle можна разглядаць як arg0, arg1, ..., АГРН. Разам яны апісваюць спіс з аднаго або некалькіх паказальнікаў на завяршальным нулём радкі, якія ўяўляюць сабой спіс параметраў, даступных выкананай праграме. Першы аргумент, па пагадненні, павінен паказваць на імя файла , звязанага з файлам , які выконваецца. Спіс аргументаў павінен завяршацца нулявым паказальнікам.

Функцыі execv і execvp забяспечвае масіў паказальнікаў на завяршальны нуль радок , якія ўяўляюць сабой спіс параметраў , даступны для новай праграмы. Першы аргумент, па пагадненні, павінен паказваць на імя файла, звязанага з файлам, які выконваецца. Масіў паказальнікаў павінен заканчвацца NULL паказальніка.

Функцыя execle таксама вызначае асяроддзе выкананага працэсу, пасля паказальніка NULL, сканчаў спіс аргументаў ў спісе параметраў або паказальнік на масіў ARGV з дадатковым параметрам. Гэты дадатковы параметр ўяўляе сабой масіў паказальнікаў на радкі з нулявым завяршальным і павінен заканчвацца паказальнікам NULL. Іншыя функцыі прымаюць асяроддзе новага ладу працэсу з знешняй зменнай акружаны ў бягучым працэсе.

Некаторыя з гэтых функцый маюць спецыяльную семантыку.

Функцыі і execvp функцый маюць дублююць дзеянні абалонкі , якія адносяцца да пошуку выкананага файла , калi толькi гэта імя файла не ўтрымлівае касой рысы (/) характар. Шлях пошуку шлях , паказаны ў асяроддзі зменнай PATH. Калі гэтая зменная не зададзена, па змаўчанні шлях ``: / бен: / USR / бен «» выкарыстоўваецца. Акрамя таго, некаторыя памылкі спецыяльна апрацоўваюцца.

Калі дазвол адмоўлена ў файл (спроба execve вярнуўся EACCES), гэтыя функцыі будуць працягваць пошук астатняй часткі шляху пошуку. Калі няма іншага файла не знойдзены, аднак, яны вернуцца з глабальнымі зменнымі егто роўным EACCES.

Калі загаловак файла ня распазнаецца (пры спробе execve вярнуўся ENOEXEC), гэтыя функцыі будуць выконваць абалонку з шляхам файла ў якасці першага аргументу. (Калі гэтая спроба няўдала, то далейшы пошук не ажыццяўляецца.)

вяртаецца значэнне

Калі якія - небудзь з якія запускаюцца функцый вяртаецца, будзе мець месца памылка. Вяртаецца значэнне -1, а глабальная пераменная ERRNO будзе ўстаноўлена , каб паказаць памылку.

Важна: Выкарыстоўвайце каманду чалавека (%) чалавек , каб паглядзець , як каманда выкарыстоўваецца на вашым канкрэтным кампутары.