Экзамен тапсырмалары жауабымен бірге
«Жүйелік бағдарламалық қамтамасыз ету» пәні бойынша:
Семаформен жұмыс істеу үшін шақырту командалары CreateSemaphore и OpenSemaphore көмегімен жазыңыз:
HANDLE CreateSemaphore(
LPSECURITY_ATTRIBUTES lpSemaphoreAttributes - қауіпсіздік атрибуты. Әдетте NULL орнатылады;
LONG lInitialCount - семафора объектісіне арналған есептегіш.
LONG lMaximumCount - белгілі бір ресурсқа қол жеткізгісі келетін ағындардың максималды саны бойынша беріледі, яғни lInitialCount сияқты мән;
LPCTSTR lpName ) - семафора объектісінің көрсеткіші.
CreateMutex қоңырауы жаңа мутекс құруға арналған прототип жазыңыз:
CreateMutex ( LPSECURITY_ATTRIBUTES lpMutexAttributes,
BOOL bInitialOwner,
LPCTSTR lpName);
LpMutexAttributes - атрибут безопасности. Должен быть NULL.
BInitialOwner - флаг, который определяет начального владельца объекта мьютекса.
LpName - указатель на имя объекта мьютекса.
Mәжбүрлеп аяқтау үшін TerminateТhread функциясын қолдана отырып идентификатор кодын беру арқылы жазыңыз:
BOOL TerminateThread(
HANDLE hThread, // идентификатор завершаемой задачи
DWOR dwExitCode); // код завершения
OVERLAPPED құрылымы келесідей анықталған:
typedef struct OVERLAPPED {
DWORD Internal; // зарезервировано
DWORD InternalHigh; // зарезервировано
DWORD Offset; // младшее слово позиции в файле
DWORD OffsetHigh; // старшее слово позиции в файле
HANDLE hEvent; // идентификатор события, который будет установлен в
// отмеченное состояние после завершения операции
} OVERLAPPED;
Синхрондау әдісі - GetOverlappedResult функциясын пайдалану. Бұл функция әдетте асинхронды файл операциясының нәтижесін тексеру үшін қолданылады:
Достарыңызбен бөлісу: |