Ц Програмирање

Кодирање виљушком и екец на примеру ц

Кодирање виљушком и екец на примеру ц
Наслов нашег чланка садржи две различите функције језика Ц које се јављају приликом покретања било ког програма у нашем систему. Нажалост, нема нужне могућности да се истовремено на Ц-у појави више од једног програма. У одређеном тренутку може се догодити само један задатак, што значи да не дозвољава покретање истовремених програма. Доводи до тога да чекате завршетак једног процеса да бисте извршили други. Да бисте избегли овај проблем са решавањем проблема, можда ћете морати да развијете свој програм на добар начин, будући да сте добар програмер. Линук форк () користи се за превазилажење чекања и омогућавање истовремености у вашем систему. Помаже у дуплицирању новог процеса и ствара нови позивањем дуплираног процеса. Нови процес је подређени процес, а претходни се назива надређени процес.

Док се функција екец () користи за промену постојећег постојећег програма новим. Ова замена се врши изменама садржаја програма или датотеке. Дакле, разлика између форк и екец је у томе што форк ствара нови процес из постојећег процеса, а екец се користи за замену постојећег програма стварањем новог.

Предуслови

Да бисмо извршили било који ц програм на вашем Линук систему, морамо да инсталирамо неке предуслове на њега. Идите до терминала помоћу пречице Цтрл + Алт + Т. Сада напишите следеће наредбе за инсталирање ман страница.

$ судо апт инсталл манпагес-дев

Инсталираће све одговарајуће странице.

Крећући се напред, да бисте покренули програм на Линуку, морате инсталирати компајлер кода. То се користи за компајлирање кода и његово извршавање. У ту сврху ћемо инсталирати ГЦЦ спремишта у наш систем.

$ судо апт инсталирај ГЦЦ

Кодирање са екец у ц

Како смо инсталирали ман странице у Линук, користићемо следећу команду да бисмо видели опис у вези са екец. Примарна синтакса узорка је следећа:

Синтакса

Екец (име путање / датотека, аргв);

Овде смо користили „унистд.х ”заглавље, јер садржи све информације о породицама извршених функција.

$ човек изврш

Сада на горе цитираној слици можете уочити врсте екец-а. То су породице извршних функција. Свака је за другу функцију која следи исту базу, „изврши.”

Пример: Сада, крећући даље, описаћемо функционалност екец-а помоћу примера. Узећемо једну функцију екец-а да покажемо свој рад, а то је „екецв.”Прво ћемо створити две датотеке са наставком„.ц.”Након њиховог стварања, у њих ћемо уписати одговарајуће кодове и извршити их да бисмо видели резултат.

Размотрите назив датотеке „сампле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.ц ид се разликује јер су родитељ и дете.

Закључак

У овом чланку смо виљушку и извршни програм користили одвојено и заједнички да бисмо лако разумели употребу и концепт. Надам се да овај водич садржи довољно садржаја који ће довести до приступа у ескалацији вашег знања.

10 најбољих игара за играње на Убунту-у
Виндовс платформа је била једна од доминантних платформи за играње игара због огромног процента игара које се данас развијају да би подржале Виндовс. ...
5 најбољих аркадних игара за Линук
У данашње време рачунари су озбиљне машине које се користе за игре на срећу. Ако не успете да добијете нови високи резултат, знаћете на шта мислим. У ...
Битка за Веснотх 1.13.6 Развој објављен
Битка за Веснотх 1.13.6 објављено прошлог месеца, шесто је развојно издање у издању 1.13.к сериес и доноси низ побољшања, посебно корисничког интерфеј...