Koyi Dokar Linux - jira

Sunan

jira, waitpid - jira tsari

Synopsis

#include
#include

pid_t jira (int * matsayi );
pid_t waitpid (pid_t pid , int * halin , int zažužžukan );

Bayani

Tasirin jira yana dakatar da kisa na halin yanzu har sai yaron ya fita, ko kuma sai an aika da siginar wanda aikinsa zai ƙare aikin yanzu ko kuma ya kira aikin sarrafawa. Idan yarinya ya riga ya wuce ta lokacin kiran (tsarin "zombie"), aikin zai dawo nan da nan. Duk wani tsarin tsarin da yaron ya yi amfani da su.

Tasirin jiragen yana dakatar da kisa na halin yanzu har sai yaro kamar yadda ƙayyadadden tabbacin ya ƙaddara, ko har sai an aika da siginar wanda aikinsa zai ƙare aikin yanzu ko don kiran aiki na sigina. Idan yaro kamar yadda ake buƙata ta jujjuya ya rigaya ya fita ta lokacin kira (wani tsari mai suna "zombie"), aikin zai dawo nan da nan. Duk wani tsarin tsarin da yaron ya yi amfani da su.

Ƙimar adidin na iya zama ɗaya daga:

<-1

wanda ke nufin jira ga duk wani yaro wanda yakamata ƙungiyar ID ta daidaita da cikakkiyar darajar pid .

-1

wanda ke nufin jira ga kowane yaro; wannan shi ne irin halin da aka jira .

0

wanda ke nufin jira ga duk wani yaro wanda ya ƙunshi tsarin ƙungiyar ID daidai da wannan na kira.

> 0

wanda ke nufin jiran ɗan yaron wanda ID wanda yake da nau'in ƙididdigar adadi.

Tamanin zaɓuɓɓuka shine OR ko siffar ƙari ko fiye daga cikin maɓalli masu zuwa:

WNOHANG

wanda ke nufin komawa nan da nan idan babu yaron ya fita.

WUNTRACED

wanda ke nufin komawa ga yara wanda aka dakatar, kuma wanda ba a bayar da rahotonsa ba.

(Domin Linux-kawai zaɓuɓɓuka, duba ƙasa.)

Idan matsayi ba NULL ba ne , jira ko jirapin ajiyar bayanan matsayin a cikin wurin da aka nuna ta matsayi .

Wannan matsayi za a iya kimanta shi da macros masu zuwa (wadannan macros suna ɗaukar buƙatu na asiri (a cikin) azaman gardama - ba ma'ana ba ga buffer!):

WIFEXITED ( matsayi )

ba zero ba ne idan yaron ya fita kullum.

WEXITSTATUS ( matsayi )

yayi la'akari da raƙuman takwas na lambar komawa na yaron wanda ya ƙare, wanda za'a iya saita a matsayin hujja ga kira don fita () ko a matsayin hujja don bayanin dawowa a cikin babban shirin. Wannan macro ba za a iya kimantawa idan WIFEXITED ya koma ba zero.

WIFSIGNALED ( matsayi )

ya dawo da gaskiya idan yaron ya fita saboda sigina wanda bai kama ba.

WTERMSIG ( matsayi )

ya dawo lambar siginar da ya sa yaron ya aiwatar da shi. Wannan macro ba za a iya kimantawa idan WIFSIGNALED ya koma ba zero.

WIFSTOPPED ( matsayi )

ya dawo da gaskiya idan tsarin yaro wanda ya haifar da dawowa a halin yanzu an dakatar da shi; wannan kawai zai yiwu idan an yi kira ta amfani da WUNTRACED .

WSTOPSIG ( matsayi )

Ya dawo da lambar sigina wanda ya sa yaron ya daina. Wannan macro za a iya kimantawa idan WIFSTOPPED ya sake dawowa ba kome ba.

Wasu sigogi na Unix (misali Linux, Solaris, amma ba AIX, SunOS) sun kuma ayyana Macro WCOREDUMP ( matsayi ) don gwada ko tsarin yarinyar da aka zubar. Yi amfani kawai da wannan a cikin #ifdef WCOREDUMP ... #endif.

Sabuntawa Darajar

ID game da yaron wanda ya fita, ko kuma idan an yi amfani da WNOHANG kuma ba a sami yara, ko -1 akan kuskure (wanda aka saita yanayin kuskure zuwa darajar da ta dace).

Kurakurai

HAUSA

idan tsarin da aka kayyade a cikin babu tabbacin ko ba'aron yarin kira ba. (Wannan zai iya faruwa ga ɗan yaron idan aikin SIGCHLD an saita zuwa SIG_IGN. Dubi ma'anar LINUX NOTES game da zaren.)

EINVAL

idan zaɓin zabin ba daidai ba ne.

EINTR

idan ba a saita WNOHANG ba kuma alama ce marar yuwuwa ko kuma SIGCHLD aka kama.