He Kupu Whakataki ki nga Pūnaha Whakahaere
Hei Habr! E hiahia ana ahau ki te kawe mai ki a koe he raupapa tuhinga-whakamaoritanga o tetahi tuhinga whakamere ki taku whakaaro - OSTEP. Ka tino matapakihia e tenei rauemi nga mahi o nga punaha whakahaere rite-unix, ara, te mahi me nga tikanga, nga momo kaihōtaka, mahara, me etahi atu waahanga rite e hanga ana i te OS hou. Ka taea e koe te kite i te taketake o nga rawa katoa i konei
Ko nga mahi taiwhanga mo tenei kaupapa ka kitea i konei:
Ko etahi atu waahanga:
Ka taea hoki e koe te tirotiro i taku hongere i
Whakaoho! He taiwhanga mo tenei kauhau! Titiro
API Tukatuka
Kia titiro tatou ki tetahi tauira o te hanga i tetahi tukanga i roto i te punaha UNIX. Ka puta ma nga waea punaha e rua marau () и kaiwhakahaere().
Karanga marau()
Whakaarohia he kaupapa e hanga ana i te marau() waea. Ko te hua o tana mahi ka penei.
Tuatahi, ka uru tatou ki te mahi matua() ka taia te aho ki te mata. Kei roto i te raina te kaitautuhi tukanga e kiia ana i te taketake PID te kaitautuhi tukanga ranei. Ka whakamahia tenei tohu i roto i te UNIX hei tohu ki tetahi tukanga. Ko te whakahau e whai ake nei ka karanga marau(). I tenei wa, ka hangaia he kape tata tonu o te tukanga. Mo te OS, te ahua nei e 2 nga kape o te kaupapa kotahi e whakahaere ana i runga i te punaha, ka puta ke te mahi marau(). Ko te tukanga tamaiti hou i hanga (e pa ana ki te tukanga matua nana i hanga) ka kore e mahia, timata mai i te mahi matua(). Kia maumahara ko te tukanga tamaiti ehara i te kape tika o te tukanga matua, inaa, he waahi noho, he rehita, he tohu tohu ki nga tohutohu ka taea te whakahaere, me era atu mea. No reira, ka rereke te uara i whakahokia ki te kaiwaea o te mahi marau(). Ina koa, ka whiwhi te tukanga matua i te uara PID o te tukanga tamaiti hei whakahoki, ka whiwhi te tamaiti i te uara e rite ana ki te 0. Ma te whakamahi i enei waehere whakahoki, ka taea e koe te wehe i nga tukanga me te akiaki ia ratou ki te mahi i ana ake mahi. . Heoi, kaore i te tino whakamaaramatia te whakatinanatanga o tenei kaupapa. I muri i te wehewehe ki nga tukanga e 2, ka timata te OS ki te aroturuki i a raatau, me te whakamahere i a raatau mahi. Mena ka mahia i runga i te tukatuka kotahi-matua, ko tetahi o nga tukanga, i tenei keehi, ko te matua, ka mahi tonu, katahi ka whiwhi mana whakahaere te tamaiti. Ina timata ano, ka rereke pea te ahuatanga.
Waea tatari()
A hi‘o na i te porotarama i muri nei. I roto i tenei kaupapa, na te aroaro o te waea tatari () Ka tatari tonu te tukanga matua kia oti te mahi a te tamaiti. I roto i tenei take, ka whiwhi tatou i te putanga kuputuhi tino tautuhi i runga i te mata
exec() karanga
Whakaarohia te wero kaiwhakahaere(). Ka whai hua tenei waea punaha ina hiahia tatou ki te whakahaere i tetahi kaupapa rereke. I konei ka karanga tatou execvp() ki te whakahaere i te kaupapa wc he kaupapa tatau kupu. Ka aha ina karangahia te exec()? Ka tukuna tenei waea ki te ingoa o te konae kawe me etahi tawhā hei tohenga. Whai muri ka utaina te waehere me nga raraunga pateko mai i tenei konae ka taea te kawe, ka tuhiruatia tana ake waahanga me te waehere. Ko nga waahi mahara e toe ana, penei i te puranga me te puranga, ka arataki ano. Whai muri ka mahia noa e te OS te kaupapa, ka tukuna he huinga tautohetohe. No reira kaore matou i hanga i tetahi mahi hou, i huri noa i te kaupapa e whakahaere ana i tenei wa ki tetahi atu kaupapa whakahaere. Whai muri i te whakahaere i te piiraa exec() i roto i te uri, ka puta te ahua karekau te kaupapa taketake i rere.
Ko tenei raruraru whakaoho he tino noa mo te anga Unix, a ka taea e taua anga te mahi waehere i muri i te waea marau (), engari i mua i te piiraa kaiwhakahaere(). Ko tetahi tauira o taua waehere ko te whakatikatika i te taiao anga ki nga hiahia o te kaupapa e whakarewahia ana, i mua i te whakarewatanga.
anga - he kaupapa kaiwhakamahi noa. Ka whakaatu ia ki a koe te rarangi powhiri me te tatari kia tuhia e koe tetahi mea ki roto. I te nuinga o nga wa, mena ka tuhia e koe te ingoa o tetahi papatono ki reira, ka kitea e te anga tona waahi, ka karangahia te tikanga marau(), ka karanga i etahi momo exec() ki te hanga i tetahi mahi hou ka tatari kia oti ma te whakamahi i te tatari() karanga. Ka puta te tukanga o te tamaiti, ka hoki mai te anga mai i te waea tatari() ka ta ano i te tohutoro ka tatari kia whakauruhia te whakahau e whai ake nei.
Ko te wehenga marau() & exec() ka taea e te anga te mahi i nga mea e whai ake nei, hei tauira:
wc kōnae > new_file.
I tenei tauira, ka tukuna te putanga o te kaupapa wc ki tetahi konae. He maamaa noa te huarahi e tutuki ai te anga - ma te hanga i te tukanga tamaiti i mua i te waea kaiwhakahaere(), ka kati te anga i te putanga paerewa me te whakatuwhera i te konae kōnae_hou, na, ko nga putanga katoa mai i te kaupapa whakahaere atu wc ka tukuna ki tetahi konae hei utu mo te mata.
Unix paipa he rite tonu te whakatinanatanga, me te rerekee ka whakamahia e ratou he paipa() waea. I roto i tenei take, ka honohia te awa whakaputa o te tukanga ki te rarangi paipa kei roto i te kernel, ka hono atu te awa whakauru o tetahi atu tukanga.
Source: will.com