Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Alexander Kulak                      2:450/208      21 Feb 2002  11:39:49
 To : Oleg Yurchenco
 Subject : Re: fork() + socket
 -------------------------------------------------------------------------------- 
 
 OY> Разбираюсь с программированием socket в линуксе.
 
 OY> 1) Обнаружил странное явление:
 OY> пока работет server (srv.e) после каждого соединения в списке процессов 
 OY> остается лишняя строка ,хотя я вижу что дочерний процесс завершается
 
 Родитель должен обрабатывать завершение потомка, например так:
 
 [ в начале: ]
 
 void handleChildTerm( int )
 {
     while( waitpid( 0, NULL, WNOHANG )>0 )
         numProc--;
     signal( SIGCHLD, handleChildTerm );
 }
 
 [ перед циклом с fork(): ]
 
 signal( SIGCHLD, handleChildTerm );
 
 Если он этого не делает и сам не умирает, потомок остается висеть
 со статусом "зомби".
 OY> "bind error: Address already in use"
 OY> В списке процессов её нет. Т.е. получается, что порт который я
 OY> использовал 
 OY> остался занят до следующей перезагрузки? Hеужели ОС не освобождает
 OY> ресурсы 
 OY> при завершении процесса?
 
 От нетерпеливый, обожди секунд 20 :)
 b.w., Alexander Kulak   [ http://www.geocities.com/quickbrainz ]
 --- tin/1.5.10-20011117 ("Darkcell") (UNIX) (Linux/2.4.14-xfs (i686))
  * Origin: Inst. Phys. Chem. problems of BSU (2:450/208@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: fork() + socket   Alexander Kulak   21 Feb 2002 11:39:49 
Архивное /ru.linux/7962d844a3f7.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional