|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/7962d844a3f7.html, оценка из 5, голосов 10
|