LINUX.ORG.RU

c++ родитель процесса

 , ,


0

1

Доброго времени суток! Разбираюсь с созданием процессов в с++. Порождаю процесс и вывожу его pid и pid его родителя. Иногда выводит pid основного процесса, а иногда - pid процесса init. Хотел спросить, с чем это связано и что я не так делаю


switch(brown_process)// 
	{
	case -1: //обрабатываем ошибку
	  	cerr << "Ошибка запуска коричневого процесса!"<<endl;
	  	return -1; //завершаем программу
	  	break;

	case 0:
  		cerr<<"Коричневый процесс работает! Его id: "<<getpid()<<endl;
  		cerr<<". id его родителя: "<<getppid()<<endl;

  		exit(0);
  		break;

   	default : 
  		cerr<<"Продолжение работы"<<endl;

  	}

Потому что у тебя родитель быстро умирает, и тогда родителем становится init. Добавь ожидание в обе ветки и получишь нужное поведение.

Pavval ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.