Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2017-06-11 | 512 |
5.00
из
|
Заказать работу |
|
|
В качестве упражнения рекомендуется осуществить прогон программы, создающей дочерний процесс.
//Практическое занятие № 23
//Группа xxxxxx Терминал N ФИО
#include "stdafx.h"
#include "windows.h" // win32 API
#include <locale.h> // подключение Русского языка
#include <iostream> // инструкции c++ std,cout,cin …
using namespace std; // пространство стандартных имен */
Void main(VOID)
{
STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcInfo;
TCHAR TCommandLine[] = TEXT("sleep 30");
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
ZeroMemory(&ProcInfo, sizeof(ProcInfo));
setlocale(LC_ALL,"RUS");
if(!CreateProcess(NULL, // Не используется имя модуля
TCommandLine, // Командная строка
NULL, // Дескриптор процесса не наследуется.
NULL, // Дескриптор потока не наследуется.
FALSE, // Установка описателей наследования
Нет флагов создания процесса
NULL, // Блок переменных окружения родительского процесса
NULL, // Использовать текущий каталог родительского процесса
&StartupInfo, // Указатель на структуру STARTUPINFO.
&ProcInfo) // Указатель на структуру информации о процессе.
) cout << "процесс не запущен" << endl;
// Ждать окончания дочернего процесса
cout << "Ждем окончания процесса 30 секунд" << endl;
WaitForSingleObject(ProcInfo.hProcess, INFINITE);
// Закрыть описатели процесса и потока
CloseHandle(ProcInfo.hProcess);
CloseHandle(ProcInfo.hThread);
}
/* При выполнении данной практической работы я освоил
.
*/
В приведенной программе имя запускаемого модуля передается через второй параметр функции CreateProcess. В примере в качестве дочерней программы используется простейшая системная программа sleep 30, задача которой - выдержать паузу длительностью 30 секунд.
При завершении процесса сопоставленный с ним объект ядра "процесс" не освобождается до тех пор, пока не будут закрыты все внешние ссылки на этот объект.
|
Практическое занятие №22
1 Краткие теоретические сведения:
Формируем программу отображающую файл Readme.txt в виде объекта MyFileObject в оперативную память с помощью системных функций
Системная функция CreateFile
Системная функция CreateFileMapping
Системная функция GetLastError
Практическая часть
//Практическое занятие № 22
//Группа xxxxxx Терминал N ФИО
#include "stdafx.h"
#include "windows.h" // win32 API
#include <iostream> // инструкции c++ std,cout,cin …
#include <stdio.h>
using namespace std; // пространство стандартных имен */
void main(void)
{
HANDLE hMapFile;
HANDLE hFile;
hFile = CreateFile(L"ReadMe.txt",
GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
cout << "LastError= " << GetLastError() << endl;
hMapFile = CreateFileMapping(hFile, NULL,
PAGE_READWRITE, 0, 0, L"MyFileObject");
cout << "LastError= " << GetLastError() << endl;
getchar();
}
/* При выполнении данной практической работы я освоил
*/
Практическое занятие №23
1 Краткие теоретические сведения:
Формируем программу создающую процесс с помощью системной функции CreateProcess, ждем окончания процесса с помощью системной функции WaitForSingleObject, закрываем описатели процесса с помощью системной функции CloseHandle
Практическая часть
//Практическое занятие № 23
//Группа xxxxxx Терминал N ФИО
#include "stdafx.h"
#include "windows.h" // win32 API
#include <locale.h> // подключение Русского языка
#include <iostream> // инструкции c++ std,cout,cin …
using namespace std; // пространство стандартных имен */
Void main(VOID)
{
STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcInfo;
TCHAR TCommandLine[] = TEXT("sleep 30");
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
ZeroMemory(&ProcInfo, sizeof(ProcInfo));
setlocale(LC_ALL,"RUS");
if(!CreateProcess(NULL, // Не используется имя модуля
TCommandLine, // Командная строка
NULL, // Дескриптор процесса не наследуется.
NULL, // Дескриптор потока не наследуется.
FALSE, // Установка описателей наследования
Нет флагов создания процесса
NULL, // Блок переменных окружения родительского процесса
|
|
|
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!