Программа Borland C++ 5.02

Дмитрий16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
09.04.2013

#include

#include

#include

using namespace std;

int main(int argc, char **argv)

{

DWORD dwWaitResult;

STARTUPINFO si = { sizeof(si) };

PROCESS_INFORMATION pi;

si.lpTitle = "Daughter process";

si.dwFlags = STARTF_USEFILLATTRIBUTE|STARTF_USEPOSITION|STARTF_USESIZE;

si.dwXSize = 800;

si.dwYSize = 300;

int MaxApplicationCount =4;

HANDLE ApplicationCountSemaphore = CreateSemaphore(NULL, 0, MaxApplicationCount, "MySem");

if(ApplicationCountSemaphore == NULL)

{

}

int GlobalApplicationCount;

ReleaseSemaphore(ApplicationCountSemaphore, 1, (LPLONG)&GlobalApplicationCount);

cout

if(GlobalApplicationCount

cout

Sleep(2000);

CreateProcess(argv[0], NULL, NULL, NULL, TRUE,CREATE_NEW_CONSOLE|NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);

}

cout

getchar();

return 0;

}

Нужно сделать

Практическая часть: Заставьте консольный процесс запустить несколько своих копий (и далее рекурсивно). Убедитесь, что порождение процессов не будет бесконечным (остановитесь на 4 уровнях максимум). Для каждого процесса создать свое окно консоли с индивидуальными настройками.

Сейчас программа порождает бесконечное количество запущенных дочерних процессов.