Запуск дочірніх процесів
а також три додаткові прапори STARTF_FORCEONFEEDBACK, STARTF_FORCEOFFFEEDBACK та STARTF_SCREENSAVER.
1.4. Дочірній процес
Створіть ще одну програму.
Забезпечте запуск цієї програми як дочірнього процесу.
Підказка: при цьому потрібно сформувати шлях до файлу дочірнього процесу, що виконується =>
в CreateProcess() можна вказати шлях (краще відносний)
1.5. Взаємодія батьківського та дочірнього процесів за допомогою перенаправлення стандартного введення/виводу
Завдання: у батьківському процесі створити об'єкт – файл і передати дочірньому процесу цей файл для запису як стандартного виводу. У дочірньому процесі сформувати текст і записати цей текст у потік виведення – при цьому насправді запис здійснюватиметься у відкритий у батьківському процесі файл)
1)в батьківському процесівідкрити файл (об'єкт повинен бутиуспадкованимдочірнім процесом. ). Для цього а) створити та проініціалізувати структуру SECURITY_ATTRIBUTES (об'єкт має бути успадкованим!) б) створити файл за допомогою CreateFile
2) Створити та проініціалізувати структуру STARTUPINFO (Зауваження: процесу, що породжується, перенаправляємо стандартний висновок у відкритий у батьківському процесі файл): а) si.dwFlags = STARTF_USESTDHANDLES; б) si.hStdOutput = hFile;
3) під час створення дочірнього процесу «успадкувати» все успадковані об'єкти.
4) можна (необов'язково) «зачекати» на закінчення дочірнього процесу
5) закрити всі відкриті дескриптори
LPCTSTR lpFileName, //вказівник на рядок з ім'ям файлу (при необхідності за допомогою)
DWORD dwAccess, //потрібнийм режимдоступу: якщо файл буде відкритий тільки для читання -GENERIC_READ, тільки запис -GENERIC_WRITEа якщо і запис, і читання -GENERIC_READGENERIC_WRITE.0-вміст файлу не можна зчитувати або записувати. Застосовується, якщо Ви хочете лише отримати атрибути файлу
DWORD dwShareMode, //режим спільного використання файлу (як можуть інші цей файл використовувати):0– спільний доступ заборонено, тобто файл не підлягає відкриттю «з боку» (будь-який інший CreateFile для цього файлу завершиться INVALID_HANDLE_VALUE) , більше того - навіть цей же процес не зможе «відкрити» цей файл ще разFILE_SHARE_READ- спроба іншим процесом відкрити файл з GENERIC_WRITE не вдасться (захист на час читання), тобто інші процеси можуть відкривати цей файл тільки для читанняFILE_SHARE_WRITE– спроба іншим процесом відкрити файл з GENERIC_READ не вдасться (захист на час запису), але дозволяється паралельний запис у файлFILE_SHARE_READFILE_SHARE_WRITEвідкривати файл без обмежень.
LPSECURITY_ATTRIBUTES lpSecurityAttributes // покажчик на структуру SECURITY_ATTRIBUTES або 0 (дескриптор не буде успадкованим + захист за умовчанням)
DWORD dwCreation, //параметри створення – визначає: чи потрібно створювати новий файл, замінювати існуючий... – існуючий файл замінюється новимOPEN_EXISTING– невдача, якщо файл не існуєOPEN_ALWAYS– файл відкривається та створюється, якщо не існуєTRUNCATE_EXISTING– встановлюється нульова довжина файлу , при цьому в dwAccess повинен бути принаймніGENERIC_WRITE
DWORD dwFlagsAndAttributes, //ЗазвичайFILE_ATTRIBUTE_NORMALЗауваження:атрибути- це характеристики самого файлу, а не способу його відкриття, => мають сенс лише під час створення файлу => вони ігноруються, якщо відкривається існуючий файл:FILE_ATTRIBUTE_NORMAL– використовується тільки якщо не встановлені жодні інші атрибути (проте прапори можуть бути встановлені)прапори:FILE_ATTRIBUTE_READONLY– не можна ні писати файл, ні видаляти йогоFILE_FLAG_DELETE_ON_CLOSE– корисний для тимчасових файлів. Файл видаляється, коли закривається його останній відкритий дескрипторFILE_FLAG_OVERLAPPED– важливий для асинхронного введення/виводу…
- АлтДТУ 419
- АлтДУ 113
- АмПГУ 296
- АГТУ 266
- БІТТУ 794
- БДТУ «Воєнмех» 1191
- БДМУ 172
- БДТУ 602
- БДУ 153
- БДУІР 391
- БелДУТ 4908
- БДЕУ 962
- БНТУ 1070
- БТЕУ ПК 689
- БрДУ 179
- ВНТУ 119
- ВГУЕС 426
- ВлДУ 645
- ВМедА 611
- ВолгДТУ 235
- ВНУ ім. Даля 166
- ВЗФЕД 245
- ВятГСХА 101
- ВятДГУ 139
- ВятДУ 559
- ГГДСК 171
- ГомГМК 501
- ДДМУ 1967
- ДДТУ ім. Сухого 4467
- ДМУ ім. Скорини 1590
- ДМА ім. Макарова 300
- ДДПУ 159
- ДальГАУ 279
- ДВДГУ 134
- ДВДМУ 409
- ДВГТУ 936
- ДВГУПС 305
- ДВФУ 949
- ДонДТУ 497
- ДІТМ МНТУ 109
- ІвДМА 488
- ІДХТУ 130
- ІжДТУ 143
- КемГППК 171
- КемДУ 507
- КДМТУ 269
- КіровАТ 147
- КДКСЕП 407
- КДТА ім. Дегтярьова 174
- КНАГТУ 2909
- КрасГАУ370
- КрасДМУ 630
- КДПУ ім. Астаф'єва 133
- КДТУ (СФУ) 567
- КДТЕІ (СФУ) 112
- КПК №2 177
- КубДТУ 139
- КубДУ 107
- КузДПА 182
- КузДТУ 789
- МДТУ ім. Носова 367
- МДЕУ ім. Сахарова 232
- МГЕК 249
- МДПУ 165
- МАІ 144
- МАДІ 151
- МДІУ 1179
- МГОУ 121
- МДСУ 330
- МДУ 273
- МГУКІ 101
- МГУПД 225
- МГУПС (МІІТ) 636
- МГУТУ 122
- МТУСІ 179
- ХАІ 656
- ТПУ 454
- НДУ МЕІ 641
- НМСУ «Гірський» 1701
- ХПІ 1534
- НТУУ «КПІ» 212
- НУК ім. Макарова 542
- НВ 777
- НДАВТ 362
- НДАУ 411
- НДАСУ 817
- НДМУ 665
- НДПУ 214
- НДТУ 4610
- НГУ 1992
- НГУЕУ 499
- НДІ 201
- ОмДТУ 301
- ОмГУПС 230
- СПбПК №4 115
- ПГУПС 2489
- ПДПУ ім. Короленка 296
- ПНТУ ім. Кондратюка 119
- РАНХіГС 186
- РОАТ МІІТ 608
- РТА 243
- РДДМУ 118
- РДПУ ім. Герцена 124
- РДППУ 142
- РДСУ 162
- «МАТІ» — РДТУ 121
- РГУНіГ 260
- РЕУ ім. Плеханова 122
- РДАТУ ім. Соловйова 219
- РязГМУ 125
- РДРТУ 666
- СамДТУ 130
- СПбДАСУ 318
- Інжекон 328
- СПбГІПСР 136
- СПбГЛТУ ім. Кірова 227
- СПбДМТУ 143
- СПбГПМУ 147
- СПбДПУ 1598
- СПбГТІ (ТУ) 292
- СПбДТУРП 235
- СПбДУ 582
- ГУАП 524
- СПбГУНіПТ 291
- СПбГУПТД 438
- СПбГУСЕ 226
- СПбГУТ 193
- СПГУТД 151
- СПбГУЕФ 145
- СПбГЕТУ «ЛЕТИ» 380
- ПІМаш 247
- НДУ ІТМО 531
- СДТУ ім. Гагаріна 114
- СахДУ 278
- СЗТУ 484
- СибАГС 249
- СибДАУ 462
- СибДІУ 1655
- СибДТУ 946
- СГУПС 1513
- СібГУТІ 2083
- СибУПК 377
- СФУ 2423
- СНАУ 567
- СумДУ 768
- ТРТУ 149
- ТОГУ 551
- ТДЕУ 325
- ТДУ (Томськ) 276
- ТДПУ 181
- ТулДУ 553
- УкрДАЖТ 234
- УлДТУ 536
- УІПКПРО 123
- УрДПУ 195
- УГТУ-УПІ 758
- УГНТУ 570
- УДТУ 134
- ХДАЕП 138
- ХДАФК 110
- ХНАГГ 407
- ХНУВС 512
- ХНУ ім. Каразіна 305
- ХНУРЕ 324
- ХНЕУ 495
- ЦПУ 157
- ЧитДУ 220
- ЮУрДУ 306
Щоб надрукувати файл, скачайте його (у форматі Word).