Thursday, April 11, 2002, 2:24:04 PM, Bogdan wrote:
BH> buna
BH> poate cineva sa-mi raspunda altfel decat prin "rtfm" la intrebarea "de
BH> ce, dupa ce creez un proces si ii aloc un terminal cu forkpty(), atunci
BH> cand ma intorc din el, ramane ca <defunct>, pana la terminarea
BH> procesului initial ?" ?
BH> libutil, glibc sunt cele din slackware 8.0, si cam asa arata
BH> programelul:
BH> #include <stdio.h>
BH> #include <pty.h>
BH> #include <unistd.h>
BH> int main()
BH> {
BH> int master, pid;
BH> if ((pid=forkpty(&master, NULL, NULL, NULL))==-1) {
BH> perror("forkpty()");
BH> }
BH> if (!pid) {
BH> sleep(1); return 0;
BH> } else sleep(2);
BH> close(master);
BH> printf("asta e\n");
BH> getchar();
BH> return 0;
BH> }
BH> /*
BH> * orice remarca e binevenita
BH> * bogdan
BH> */
BH> ---
BH> <a href="mailto:[EMAIL PROTECTED]?Subject=unsubscribe%20rlug">unsubscribe</a>
BH> REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
pentru ca atunci cand s-a terminat un proces copil, parintele trebuie
sa-i dea wait, wait4...
asta se face in halul urmator: se intercepteaza semnal SIGCLD (child)
si in functia respectiva se da wait(NULL)-> inchide toti copii care au
terminat treaba
--
Best regards,
Sami Potirca
LRU: #270397
[EMAIL PROTECTED]
ICQ#: 100201696
YM: sami_potirca
---
<a href="mailto:[EMAIL PROTECTED]?Subject=unsubscribe%20rlug">unsubscribe</a>
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/