#include #include #include int main() { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); // Создаем дочерний процесс if (!CreateProcess( NULL, // Имя исполняемого модуля "child.exe", // Командная строка NULL, // Атрибуты безопасности процесса NULL, // Атрибуты безопасности потока FALSE, // Наследование дескрипторов 0, // Флаги создания NULL, // Окружение NULL, // Текущий каталог &si, // STARTUPINFO &pi) // PROCESS_INFORMATION ) { printf("CreateProcess failed (%d).\n", GetLastError()); return 1; } // Родительский процесс выводит сообщения for (int i = 0; i < 5; i++) { printf("Parent process: iteration %d\n", i); Sleep(1000); // Задержка 1 секунда } // Ожидаем завершения дочернего процесса WaitForSingleObject(pi.hProcess, INFINITE); // Закрываем дескрипторы CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return 0; }