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/


Raspunde prin e-mail lui