Faiga Fa'agaioiga: Tolu Faigofie Faiga. Vaega 3: Fa'agasologa API (fa'aliliuga)

Folasaga i Faiga Fa'agaioiga

Ei Habr! Ou te fia faailoa atu ia te outou se faasologa o tala-faaliliuga o se tasi tusitusiga manaia i loʻu manatu - OSTEP. O lenei mea o loʻo faʻatalanoaina loloto le galuega o faiga faʻaogaina e pei o le unix, e pei o, galue ma faʻagasologa, faʻasologa eseese, manatua, ma isi vaega tutusa e fausia ai se OS faʻaonaponei. E mafai ona e va'ai i le mea muamua o mea uma iinei iinei. Fa'amolemole maitau o le fa'aliliuga sa faia e le'o fa'apolofesa (sa'oloto lava), ae ou te fa'amoemoe o lo'o tumau pea le uiga lautele.

Ole su'esu'ega ile mataupu e mafai ona maua iinei:

O isi vaega:

E mafai fo'i ona e va'ai i la'u auala ile telegram =)

Alalaga! O loʻo i ai se fale suʻesuʻe mo lenei lauga! Vaai github

Fa'agasologa API

Sei o tatou tilotilo i se faʻataʻitaʻiga o le fatuina o se faʻagasologa i totonu ole UNIX system. E tupu e ala i telefoni faiga e lua tui () и fa'atonu().

Valaau tui()

Faiga Fa'agaioiga: Tolu Faigofie Faiga. Vaega 3: Fa'agasologa API (fa'aliliuga)

Mafaufau i se polokalame e faia ai se tui () valaau. O le taunuuga o lona faatinoga o le a faapenei.

Faiga Fa'agaioiga: Tolu Faigofie Faiga. Vaega 3: Fa'agasologa API (fa'aliliuga)

Muamua, matou te ulufale i le autu () galuega ma lolomi le manoa i le lau. O le laina o lo'o i ai le fa'amatalaga fa'agasologa lea e ta'ua i le ulua'i tusi PID po'o fa'ailoga fa'agasologa. O lenei faʻamatalaga e faʻaaogaina i UNIX e faʻasino i se gaioiga. O le isi poloaiga o le a taʻua le tui (). I le taimi nei, o se kopi toetoe lava sa'o o le faagasologa ua faia. Mo le OS, e foliga mai o loʻo i ai kopi 2 o le polokalama lava e tasi o loʻo faʻaogaina i luga o le polokalama, lea o le a alu ese ai mai le tui () galuega. O le fa'agasologa fou a tamaiti (e fa'atatau i le fa'agasologa o matua na faia ai) o le a le toe fa'atinoina, e amata mai le galuega autu (). E tatau ona manatua o le faagasologa o tamaiti e le o se kopi saʻo o le faʻagasologa o matua, aemaise lava, o loʻo i ai lona lava tuatusi avanoa, ona lava resitara, lona lava faʻasino ile faʻatonuga, ma mea faapena. O le mea lea, o le tau e toe faʻafoʻi atu i le tagata valaʻau o le fork() galuega o le a ese. Aemaise lava, o le faagasologa o matua o le a maua le taua o le PID o le faagasologa o le tamaititi e avea o se toe faafoi, ma o le a maua e le tamaititi se tau e tutusa ma le 0. I le faʻaaogaina o nei tulafono faʻafoʻi, e mafai ona e vavaeeseina faiga ma faʻamalosia i latou taʻitoʻatasi e fai lana lava galuega. . Ae ui i lea, o le faʻatinoina o lenei polokalame e leʻo faʻamalamalamaina atoatoa. Ina ua uma ona vaevaeina i le 2 faiga, e amata ona mataʻituina e le OS, faʻapea foʻi ma le fuafuaina o latou galuega. Afai e faʻatinoina i luga o se tasi-core processor, o se tasi o faʻagasologa, i lenei tulaga o le matua, o le a faʻaauau pea ona galue, ona maua ai lea e le tamaititi le faʻatonuga. A toe amata, atonu e ese le tulaga.

Valaau fa'atali()

Faiga Fa'agaioiga: Tolu Faigofie Faiga. Vaega 3: Fa'agasologa API (fa'aliliuga)

Seʻi manatu i le polokalame o loo sosoo mai. I lenei polokalame, ona o le i ai o se valaau faatali() Ole fa'agasologa matua ole a fa'atali i taimi uma mo le fa'agasologa ole tamaititi e mae'a. I lenei tulaga, o le a matou maua se faʻamatalaga faʻamaonia manino i luga o le lau

Faiga Fa'agaioiga: Tolu Faigofie Faiga. Vaega 3: Fa'agasologa API (fa'aliliuga)

exec() valaau

Faiga Fa'agaioiga: Tolu Faigofie Faiga. Vaega 3: Fa'agasologa API (fa'aliliuga)

Seʻi manatu i le luʻi fa'atonu(). E aoga le telefoni lea pe a tatou mananao e fai se polokalame e matua ese lava. O iinei o le a tatou valaau atu ai execvp() e fa'atino ai le polokalame wc o se polokalame faitau upu. O le a le mea e tupu pe a valaʻau exec()? O lenei valaau e pasia le igoa o le faila faila ma nisi faʻamaufaʻailoga e fai ma finauga. A maeʻa ona utaina le code ma faʻamaumauga faʻamau mai lenei faila faʻapipiʻi ma o lana lava vaega faʻatasi ai ma le code ua faʻauluina. O vaega o lo'o totoe o manatuaga, e pei o le fa'aputuga ma le fa'aputugā, ua toe fa'aulutalaina. A maeʻa ona faʻatinoina e le OS le polokalama, pasi atu i ai se seti o finauga. O lea matou te le'i faia se faiga fou, na o le suia o le polokalame o lo'o fa'agasolo nei i se isi polokalame fa'agasolo. A maeʻa ona faʻataunuʻuina le exec() valaau i le tupuaga, e foliga mai e leʻi tamoe le polokalama muamua.

O lenei faʻalavelave amata e masani lava mo se atigi Unix, ma faʻatagaina lena atigi e faʻatino le code pe a uma ona valaʻau tui (), ae a o lei valaauina fa'atonu(). O se fa'ata'ita'iga o lea fa'ailoga o le fetu'una'iga o le si'osi'omaga atigi i mana'oga o le polokalame o lo'o fa'alauiloa, a'o le'i fa'alauiloa.

Shell - na'o se polokalame fa'aoga. Na te faaali atu ia te oe le laina valaaulia ma faatalitali mo oe e tusi ai se mea i totonu. I le tele o tulaga, afai e te tusia le igoa o se polokalama iina, o le a maua e le atigi lona nofoaga, valaʻau le tui () metotia, ona valaʻau lea o se ituaiga o exec () e fatu ai se faiga fou ma faʻatali mo le faʻamaeʻaina e faʻaaoga ai se faatali() valaau. A uma le gaioiga a le tamaititi, o le a toe foʻi mai le atigi mai le faʻatali () valaau ma toe lolomi le vave ma faʻatali mo le isi poloaiga e tuʻuina atu.

Ole vavae() & exec() e mafai ai e le atigi ona fai mea nei, mo se faʻataʻitaʻiga:
wc faila> faila_fou.

I lenei faʻataʻitaʻiga, o le gaioiga o le polokalame wc ua toe faʻafeiloaʻi i se faila. O le auala e ausia ai e le atigi lenei mea e fai si faigofie - e ala i le fatuina o se tamaititi aʻo leʻi valaʻau fa'atonu(), tapunia e le atigi galuega masani ma tatala le faila faila_fou, o lea, o mea uma e maua mai le polokalame o lo'o fa'agasolo wc o le a toe fa'afeiloa'i i se faila nai lo se lau.

Unix paipa o loʻo faʻatinoina i se auala talitutusa, ma le eseesega latou te faʻaogaina se paipa () valaau. I le tulaga lea, o le a fa'afeso'ota'i le fa'aulufalega o le fa'agasologa i se laina paipa o lo'o i totonu o le fatu, lea o le a fa'afeso'ota'i ai le fa'aoga o le isi faiga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga