Вывучаюць каманды Linux - execv

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 []);

Апісанне функцый EXEC

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

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

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

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

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

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

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

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

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

Вяртаецца значэнне функцый EXEC

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