Родительский процесс должен отслеживать смерть
своих детей, для этого регистрирую обрабочик
для SIGCHLD
//function for catch SIGCHILD
void sig_child ( int sig_in)
{
	fprintf ( stderr, "\none child dead :))\n");
	child_count--;
	int status;
	wait4 ( &status);
};
но если умарает два потомка пока родитель не работает
то один из них превращается в зомби.
Попытался использовать вместо wait wait4, но он входит
в бесконечный цикл. 
//function for catch SIGCHILD
void sig_child ( int sig_in)
{
	fprintf ( stderr, "\none child dead :))\n");
	child_count--;
	int status;
	pid_t pid = -1;
	struct rusage rsg;
	while ( wait4 ( pid, &status, WNOHANG, &rsg))
	{
		child_count--;
		fprintf ( stderr, "\none child dead :))\n");
	};
};
Подскажите в чем моя ошибка и как
вообще решается такая проблема.


    
      Ответ на:
      
          комментарий
        от Die-Hard 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от Die-Hard 
  
    
      Ответ на:
      
          комментарий
        от Die-Hard 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от Die-Hard 
  
    
      Ответ на:
      
          комментарий
        от cvv 
  
    
      Ответ на:
      
          комментарий
        от cvv 
  
    
      Ответ на:
      
          комментарий
        от cvv 
  

    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от Die-Hard 
  
    
      Ответ на:
      
          комментарий
        от stalcker 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум fork(), exec(), wait() (2020)
- Форум fork + popen. Залипание на wait при SIGCHLD (2019)
- Форум fork() (2020)
- Форум создание дочерних процессов_ (2010)
- Форум Что имели в виду авторы? (2016)
- Форум Вопрос по FIFO (2014)
- Форум помогите разобраться (2005)
- Форум Уничтожение дочернего процесса (2004)
- Форум Поругайте «стража» дочерних процессов (2015)
- Форум Общие файлы, mmap - чтение (2015)