Բովանդակություն
Theկատարել գործառույթների ընտանիքը փոխարինում է ընթացիկ գործընթացի պատկերը նոր գործընթացի պատկերով: Այստեղ նկարագրված գործառույթները գործառույթի համար առջևի ծայրեր ենկատարել(2).
Այս գործառույթների համար նախնական փաստարկը այն ֆայլի ուղին է, որը պետք է կատարվի:
Theconst char * arg և դրան հաջորդող էլիպսերըexecl, մահապատժի, ևմահապատժի գործառույթները կարելի է համարել որպեսarg0, arg1, ..., argn. Նրանք միասին նկարագրում են չեզոքացված տողերի մեկ կամ մի քանի ցուցիչների ցուցակը, որոնք ներկայացնում են կատարված ծրագրի համար մատչելի փաստարկների ցուցակը: Առաջին փաստարկը, ըստ պայմանագրերի, պետք է նշի այն ֆայլի անունը, որը կապված է գործի ֆայլի հետ: Փաստարկների ցանկըպետք է դադարեցվել է աԴԱՏԱՐԿ ցուցիչ
Theexecv ևexecvp գործառույթները մատնանշում են զրոյական դադարեցված տողերի ցուցիչների մի շարք, որոնք ներկայացնում են նոր ծրագրին մատչելի փաստարկների ցուցակը: Առաջին փաստարկը, ըստ պայմանագրերի, պետք է նշի այն ֆայլի անունը, որը կապված է գործի ֆայլի հետ: Pointուցանիշների զանգվածպետք է դադարեցվել է աԴԱՏԱՐԿ ցուցիչ
Theմահապատժի գործառույթը նաև սահմանում է կատարված գործընթացի միջավայրը `հետևելով դրանԴԱՏԱՐԿցուցիչ, որն ավարտում է պարամետրերի ցուցակի փաստարկների ցանկը կամ argv array- ի ցուցիչի ցուցիչը լրացուցիչ պարամետրով: Այս լրացուցիչ պարամետրը զրոյական դադարեցված տողերի ցուցիչների զանգված էպետք է դադարեցվել է աԴԱՏԱՐԿ ցուցիչ Մյուս գործառույթները հաշվի են առնում արտաքին փոփոխականից նոր գործընթացների պատկերի միջավայրըշրջակա միջավայր ընթացիկ գործընթացում:
Այս գործառույթներից մի քանիսը ունեն հատուկ իմաստաբանություն:
Գործառույթներըմահապատժի ևexecvp կրկնօրինակելու է կեղևի գործողությունները կատարողական ֆայլ որոնելու դեպքում, եթե նշված ֆայլի անունը չի պարունակում կտրատված (/) բնույթ: Որոնման ուղին շրջակա միջավայրում նշված ճանապարհն էՊԱՇ փոփոխական: Եթե նշված փոփոխականությունը նշված չէ, օգտագործվում է «`: / bin: / usr / bin »կանխադրված ուղին: Բացի այդ, որոշակի սխալները հատուկ են վերաբերվում:
Եթե թույլտվությունը մերժվում է ֆայլի համար (փորձըկատարել վերադարձավՀԱՐԵՐ), այս գործառույթները կշարունակեն որոնման մնացած ուղու որոնումը: Եթե այլ ֆայլ չի գտնվել, այնուամենայնիվ, նրանք կվերադառնան համաշխարհային փոփոխականerrno սահմանված էՀԱՐԵՐ.
Եթե ֆայլի վերնագիրը չի ճանաչվում (փորձըկատարել վերադարձավENOEXEC), այս գործառույթները կկատարեն կեղևը ֆայլի ուղով, որպես առաջին փաստարկ: (Եթե այս փորձը ձախողվի, այլևս որոնումներ չեն արվում:)
Վերադարձի արժեքը
Եթե որևէ մեկըկատարել գործառույթները վերադառնում են, սխալ կլինի: Վերադարձի արժեքը -1 է, իսկ գլոբալ փոփոխականըerrno կսահմանվի սխալը նշելու համար:
Օգտագործեքմարդ հրաման (% մարդ) տեսնել, թե ինչպես է հրամանը օգտագործվում ձեր որոշակի համակարգչում:
Անուն
execl, execlp, execle, execv, execvp - ֆայլ կատարել
Սինոփսիս
#ներառում extern char ** միջավայր; int execl (const char *)ուղին, const char *վիճել, ...); int execlp (const char *)ֆայլ, const char *վիճել, ...); int execle (const char *)ուղին, const char *վիճել , ..., char * կոնստնախանձ[]); int execv (const char *)ուղին, char * կոնստարգվ[]); int execvp (const char *)ֆայլ, char * կոնստարգվ[]);