Омӯзед Linux Command - execl

Ном: execl, execlp, execle, execv, execvp - файлро иҷро кунед

Калима

#include

фарқият;

int execl (конструксияи ракси * , констрой * arg , ...);
int execlp (const char * харита , const хати * arg , ...);
int execle (const * ро пахш кунед , const char * arg , ..., char * const envp []);
int execv (const * раками * char , const argv []);
int execvp (const char * харитаи , char * const argv []);

Тавсифи

Оиладорони функсияҳо симои раванди ҷорӣ бо тасвири навро иваз мекунанд . Функсияҳои дар ин саҳифа дастуруламал барои пешравии функсияҳо (2) мебошанд. Далели ибтидоии ин вазифаҳо номи рамзи файли иҷрошаванда мебошад.

Дар конструктор * arg ва минбаъд ellipses дар функсияҳои execl , execlp ва execle мумкин аст ҳамчун arg0 , arg1 , ..., argn . Якҷоя як рӯйхати як ё якчанд нишондиҳандаҳоро ба иштибоҳҳои бекоршуда, ки рӯйхати мубоҳисаро, ки ба барномаи иҷрошуда дастрасанд, нишон медиҳанд. Далели аввал, ба воситаи конвенсия бояд ба номи файл алоқаманд бошад, ки бо файл иҷро карда мешавад. Рӯйхати далелҳо бояд аз ҷониби NULL нишондиҳанда қатъ карда шаванд.

Функсияҳои execv ва execvp як қатор нишондиҳандаҳоро ба иштибоҳҳои қатънашуда , ки рӯйхати мубоҳисаро, ки ба барномаи нав дастрасанд, пешниҳод мекунад. Далели аввал, ба воситаи конвенсия бояд ба номи файл алоқаманд бошад, ки бо файл иҷро карда мешавад. Намудҳои нишонаҳо бояд аз тарафи NULL нишондиҳанда қатъ карда шаванд.

Функсияи execle ҳамчунин муҳити раванди иҷрошавандаро бо нишонгари NULL муайян мекунад , ки рӯйхати баҳсҳоро дар рӯйхати параграф ё нишондиҳанда ба сатри ибтидоӣ бо параметрҳои иловагӣ қатъ мекунад. Ин параметрҳои иловагӣ як қатор нишондиҳандаҳоро ба хатҳои нопурраи хотимавӣ ва аз тарафи нишонгари NULL қатъ карда мешаванд. Функсияҳои дигар муҳити экологии раванди навро аз муҳити тағйирёбандаи беруна дар раванди кунунӣ мегиранд.

Баъзе аз ин функсияҳо аломатҳои махсус доранд.

Функсияҳои execvp ва execvp амалиёти ҷустуҷӯиро дар ҷустуҷӯи файли иҷрошаванда, агар номнависии номуайян дорои аломати (/) бошад. Роҳи ҷустуҷӯ роҳи роҳест, ки дар муҳити атрофи тағйирёбии PATH нишон дода шудааст. Агар ин тағирот муайян карда нашавад, роҳи рости ``: /: bin: / usr / bin '' истифода мешавад. Илова бар ин, хатоҳои муайян махсусан табобат мегиранд.

Агар розигӣ барои як файл рад карда шуда бошад (кӯшиш карда мешавад, ки EACCES баргардонида шавад ), ин функсияҳо боқимонда ҷустуҷӯро боқӣ мемонанд. Агар ягон файл пайдо карда нашавад, онҳо бо хатогии тағйирёбии глобалӣ ба EACCES бармегарданд .

Агар сарлавҳаи парванда эътироф нашуда бошад (кӯшиши кӯшиши ENOEXEC баргардонида шудааст), ин функсияҳо бо рамзи файли ҳамчун далели аввалин амал мекунанд. (Агар ин кӯшишҳо хато накунанд, ҷустуҷӯ кардан ғайриимкон аст.)

Арзишро баргардонед

Агар ягон вазифаи exec баргардонида шавад, хато рӯй хоҳад дод. Арзиши барг -1-ро ташкил медиҳад ва хатогии тағйирёбии глобалӣ ба хатогиҳо ишора мекунад.