Док се функција екец () користи за промену постојећег постојећег програма новим. Ова замена се врши изменама садржаја програма или датотеке. Дакле, разлика између форк и екец је у томе што форк ствара нови процес из постојећег процеса, а екец се користи за замену постојећег програма стварањем новог.
Предуслови
Да бисмо извршили било који ц програм на вашем Линук систему, морамо да инсталирамо неке предуслове на њега. Идите до терминала помоћу пречице Цтрл + Алт + Т. Сада напишите следеће наредбе за инсталирање ман страница.
$ судо апт инсталл манпагес-дев
Инсталираће све одговарајуће странице.
Крећући се напред, да бисте покренули програм на Линуку, морате инсталирати компајлер кода. То се користи за компајлирање кода и његово извршавање. У ту сврху ћемо инсталирати ГЦЦ спремишта у наш систем.
$ судо апт инсталирај ГЦЦ
Кодирање са екец у ц
Како смо инсталирали ман странице у Линук, користићемо следећу команду да бисмо видели опис у вези са екец. Примарна синтакса узорка је следећа:
Синтакса
Екец (име путање / датотека, аргв);Овде смо користили „унистд.х ”заглавље, јер садржи све информације о породицама извршених функција.
$ човек изврш
Сада на горе цитираној слици можете уочити врсте екец-а. То су породице извршних функција. Свака је за другу функцију која следи исту базу, „изврши.”
Пример: Сада, крећући даље, описаћемо функционалност екец-а помоћу примера. Узећемо једну функцију екец-а да покажемо свој рад, а то је „екецв.”Прво ћемо створити две датотеке са наставком„.ц.”Након њиховог стварања, у њих ћемо уписати одговарајуће кодове и извршити их да бисмо видели резултат.
Размотрите назив датотеке „сампле4.ц ”. Отворите га и користите следећи код. У овом коду смо користили екецв на посебан начин наведен у наставку.
Екецв („./ сампле4цопи ”, аргументи);Први део садржи нову путању директоријума, а други део приказује низ аргумената као параметар који смо проследили.
Узорак4.ц
Пре свега, одштампали смо ИД тренутног процеса. Друго, створили смо низ знакова који на крају имају НУЛЛ за завршетак. Треће, позвали смо функцију сампле4цопи.
Сампле4цопи.цКада позовемо функцију екец (), слика процеса се мења. Испод цитиране слике испод приказан је код сампле4цопи.ц.
Овде смо користили само исказе за испис да бисмо добили ИД тренутног процеса.
Излаз одговарајућих кодова може се добити помоћу следећих наредби.
$ ГЦЦ-о сампле4 сампле4.ц$ ГЦЦ -о сампле4цопи сампле4цопи.ц
$ ./ сампле4
Као што смо раније описали, реч „ГЦЦ“ користи се за компајлирање кода, а након компајлирања код се успешно извршава.
Према слици, ПИД узорка4.ц датотека се приказује прва онако како је декларисана пре екец позива. Затим након позива функције екец () оба исписа исписа датотеке сампле4цопи.ц се извршава тамо где се гетпид () користи за добијање ИД-а процеса.
Кодирање виљушком у в
Функција форк () креира подређени процес од родитељског процеса. Такође садржи два заглавља, укључујући информације о виљушкама у себи.
Синтакса:
Пид_т форк (воид);За помоћ у коришћењу можемо да користимо ман страницу
$ ман виљушка
Пример: Сада размотрите пример стварањем датотеке „сампле3.ц ”. Унећемо код унутар датотеке. Према коду, статус виљушке поставили смо као форкранк.
Узорак3.ц
Користили смо изјаву „ако-друго“ да бисмо применили услов. Овде су декларисане једноставне наредбе за испис које помажу у разумевању концепта форк (). Форкранк се прво декларише као 0, а затим -1. Са форк () сада постоје два процеса која раде истовремено. Излаз се може добити коришћењем истог кода, као што је горе коришћено у екец примеру.
$ ГЦЦ -о сампле3.ц$./ сампле3
Излаз показује да се подређени процес извршава раније од надређеног када је надређени процес чекао. Функција чекања подразумева да узрокује да родитељска функција чека, осим ако се не прекине један од свих подређених процеса.
Форк и Екец системски позиви
Овде ћемо узети две датотеке под називом „сампле1.ц “и„ сампле2.ц ”. Прво отворите датотеку сампл1.ц и напишите код који је доле додат на слици. Овде смо користили системски позив форк (); када се креира подређени процес, п ће добити 0. Док користите екец системски позив, сампле1.ц ће бити замењен са сампле2.ц.
Узорак1.ц
Узорак2.ц
Слично горе поменутим примерима, датотека сампле2 ће у себи садржати исписе принтф. У узорку1.ц, прво се извршава прва наредба за испис, затим се позива функција форк, када је п == 0, затим се извршава подређени део и сампле2.ц датотека ће бити покренута. Излаз ће садржати ГЦЦ за компајлирање обе датотеке. Овде родитељски узорак1.ц ид и сампле2.ц ид се разликује јер су родитељ и дете.
Закључак
У овом чланку смо виљушку и извршни програм користили одвојено и заједнички да бисмо лако разумели употребу и концепт. Надам се да овај водич садржи довољно садржаја који ће довести до приступа у ескалацији вашег знања.