1

Тема: Запуск процесу з параметрами

Написати програми двох консольних процесів Parent і Child, які виконують наступні дії.

Процес Parent:
1    Створює бінарний файл, записи якого мають наступну структуру:

struct emp
{
int num;            // номер залікової книжки
char name[10];        // ім'я студента
double grade;        // середній бал
};

Ім'я файла і дані про студентів вводяться з консолі.
2    Виводить створений файл на консоль.
3    Запрошує з консолі номер залікової книжки, ім'я студента і новий середній бал цього студента.
4    Формує командний рядок, який містить ім'я створеного файла та інформацію, отриману в пункті 3.
5    Запускає дочірній процес Child, якому як параметр передається командний рядок, сформований в пункті 4.
6    Чекає завершення роботи процесу Child.
7    Виводить відкоригований файл на консоль.
8    Завершує свою роботу.

Процес Child:
1    Виводить на консоль інформацію, отриману через командний рядок.
2    Коригує у файлі, створеному процесом Parent, потрібний запис, тобто встановлює новий середній бал студента.
3    Завершує свою роботу.


Потрібна допомога. Як передати параметр у дочірній процес через CreateProcess??

2

Re: Запуск процесу з параметрами

Сказано ж: через командний рядок. Відкриваєте https://msdn.microsoft.com/en-us/librar … s.85).aspx, дивитеся

визначення

BOOL WINAPI CreateProcess(
  _In_opt_    LPCTSTR               lpApplicationName,
  _Inout_opt_ LPTSTR                lpCommandLine,
  _In_opt_    LPSECURITY_ATTRIBUTES lpProcessAttributes,
  _In_opt_    LPSECURITY_ATTRIBUTES lpThreadAttributes,
  _In_        BOOL                  bInheritHandles,
  _In_        DWORD                 dwCreationFlags,
  _In_opt_    LPVOID                lpEnvironment,
  _In_opt_    LPCTSTR               lpCurrentDirectory,
  _In_        LPSTARTUPINFO         lpStartupInfo,
  _Out_       LPPROCESS_INFORMATION lpProcessInformation
);

Ваш параметр - другий, в нього треба передати рядок на кшталт

"child -f myfile.bin -name "Serhiy Petrenko\" -number 123456 -grade 10.5"

А child, відповідно, має обробляти argc і argv.