Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
|
из
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, // Блок переменных окружения родительского процесса
|
|
|
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!