Программа, выводящая информацию о логических дисках
Проектирование приложения, выводящего информацию о логических дисках: размер диска, свободное место, кластеры. Выведение номера тома, буфер, название. Последовательность смешения битовой маски всех дисков. Пример интерфейса программы и ее запуск.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 19.07.2017 |
Размер файла | 251,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
ГОСУДАРСТВЕННОЕ ВЫСШЕЕ УЧЕБНОЕ ЗАВЕДЕНИЕ
«ЗАПОРОЖСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ»
ЕКОНОМИКО-ПРАВОВОЙ КОЛЛЕДЖ
Отчет по лабораторной работе №7
По дисциплине «Операционные системы»
ВыполнилСтудент гр. к51-11,
Жуков Д.А.
ПроверилПреподаватель
Неласая А. В.
Запорожье 2014
Ход работы
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#define _WIN32_WINNT 0x0501
#define BUFSIZE MAX_PATH
#define FILESYSNAMEBUFSIZE MAX_PATH
DWORD mydrives = 100;
char lpBuffer[100];
TCHAR szDrive[] = _T(" A:");
LPCWSTR drive2[13] = {L"A:\\", L"B:\\", L"C:\\", L"D:\\", L"E:\\", L"F:\\", L"G:\\", L"H:\\",L"I:\\", L"J:\\", L"K:\\", L"L:\\"};
int main(void)
{
// выводит размер диска, свободное место, кластеры
LPCWSTR pszDrive = NULL;
BOOL test1, fResult;
__int64 lpFreeBytesAvailable, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes;
DWORD dwSectPerClust, dwBytesPerSect, dwFreeClusters, dwTotalClusters;
test1 = GetDiskFreeSpaceEx(
pszDrive,
(PULARGE_INTEGER)&lpFreeBytesAvailable,
(PULARGE_INTEGER)&lpTotalNumberOfBytes,
(PULARGE_INTEGER)&lpTotalNumberOfFreeBytes
);
printf("\nUsing GetDiskFreeSpaceEx()...\n");
printf("The return value: %d, error code: %d\n", test1, GetLastError());
printf("Total number of free bytes available for user-caller: %ul\n", lpFreeBytesAvailable);
printf("Total number of bytes available for user: %ul\n", lpTotalNumberOfBytes);
printf("Total number of free bytes on disk: %ul\n", lpTotalNumberOfFreeBytes);
fResult = GetDiskFreeSpace(pszDrive,
&dwSectPerClust,
&dwBytesPerSect,
&dwFreeClusters,
&dwTotalClusters);
printf("\nUsing GetDiskFreeSpace()...\n");
printf("The return value: %d, error code: %d\n", fResult, GetLastError());
printf("Sector per cluster = %ul\n", dwSectPerClust);
printf("Bytes per sector = %ul\n", dwBytesPerSect);
printf("Free cluster = %ul\n", dwFreeClusters);
printf("Total cluster = %ul\n", dwTotalClusters);
printf("Total free bytes = %ul\n", (dwFreeClusters*dwSectPerClust*dwBytesPerSect));
printf("\n");
// выводит тип диска
int i;
UINT test2;
for(i=0; i<12; i++)
{
test2 = GetDriveType(drive2[i]);
switch(test2)
{
case 0: printf("Drive %S is type %d - Cannot be determined.\n", drive2[i], test2);
break;
case 1: printf("Drive %S is type %d - Invalid root path/Not available.\n", drive2[i], test2);
break;
case 2: printf("Drive %S is type %d - Removable.\n", drive2[i], test2);
break;
case 3: printf("Drive %S is type %d - Fixed.\n", drive2[i], test2);
break;
case 4: printf("Drive %S is type %d - Network.\n", drive2[i], test2);
break;
case 5: printf("Drive %S is type %d - CD-ROM.\n", drive2[i], test2);
break;
case 6: printf("Drive %S is type %d - RAMDISK.\n", drive2[i], test2);
break;
default : "Unknown value!\n";
}
}
printf("\n");
// выводит номер тома, буфер, название
char buf[BUFSIZE];
DWORD lpMaximumComponentLength;
DWORD dwSysFlags;
char FileSysNameBuf[FILESYSNAMEBUFSIZE];
BOOL test;
HANDLE hVol;
hVol = FindFirstVolume((LPWSTR)buf, BUFSIZE);
if(hVol == INVALID_HANDLE_VALUE)
{
printf ("No volumes found!\n");
return (1);
}
test = GetVolumeInformation(
(LPCWSTR)buf,
NULL,
BUFSIZE,
NULL,
&lpMaximumComponentLength,
&dwSysFlags,
(LPWSTR)FileSysNameBuf,
FILESYSNAMEBUFSIZE
);
printf("The GetVolumeInformation() return value is: %d\n", test);
printf("The first volume found: %S\n", buf);
printf("The buffer for volume name: %d\n", BUFSIZE);
printf("The max component length: %d\n", lpMaximumComponentLength);
printf("The file system flag: %d\n", dwSysFlags);
printf("The file system: %S\n", FileSysNameBuf);
printf("The buffer for file system name: %d\n", FILESYSNAMEBUFSIZE);
if(FindVolumeClose(hVol) != 0)
printf("Handle for the %S closed successfully!\n", buf);
else
printf("%S handle failed to close!\n");
//
DWORD uDriveMask = GetLogicalDrives();
printf("The bitmask of the logical drives in hex: %0X\n", uDriveMask);
printf("The bitmask of the logical drives in decimal: %d\n", uDriveMask);
if(uDriveMask == 0)
printf("GetLogicalDrives() failed with failure code: %d\n", GetLastError());
else
{
printf("This machine has the following logical drives:\n");
while(uDriveMask)
{
if(uDriveMask & 1)
printf("%S ", (const char *)szDrive);
++szDrive[1];
uDriveMask >>= 1;
}
printf("\n ");
}
system ("pause");
// смешение битовой маски всех дисков
DWORD test3;
int l;
test3 = GetLogicalDriveStrings(mydrives, (LPWSTR)lpBuffer);
if(test3 != 0)
{
printf("GetLogicalDriveStrings() return value: %d, Error (if any): %d \n", test3, GetLastError());
printf("The logical drives of this machine are:\n");
for(l = 0; i<100; i++)
printf("%c", lpBuffer[i]);
printf("\n");
}
else
printf("GetLogicalDriveStrings() is failed lor!!! Error code: %d\n", GetLastError());
return 0;
} программа информация диск
Размещено на Allbest.ru
...Подобные документы
Разработка на языке программирования С++ программы анализа логических дисков. Интерфейс, диалог с пользователем. Определение текущего диска, его размера, занятого и свободного места, информации о кластерах. Организация программы с использованием меню.
курсовая работа [182,1 K], добавлен 22.10.2012Накопители на гибких магнитных дисках позволяют переносить документы и программы с одного компьютера на другой, хранить информацию, не используемую постоянно на компьютере, делать архивные копии программных продуктов, содержащихся на жестком диске.
реферат [24,4 K], добавлен 18.07.2008Запоминающие устройства на жестких магнитных дисках. Устройство жестких дисков. Интерфейсы жестких дисков. Интерфейс ATA, Serial ATA. Тестирование производительности накопителей на жестких магнитных дисках. Сравнительный анализ Serial ATA и IDE-дисков.
презентация [1,2 M], добавлен 11.12.2013- Программа управления базой данных, содержащей информацию о читателях, книгах и работниках библиотеки
Проектирование программы на языке Turbo Pascal, позволяющей просматривать информацию, осуществлять поиск по определённым параметрам, позволять редактировать данные, а также удалять ненужные записи и добавлять новые. Алгоритм и листинг программы.
курсовая работа [46,4 K], добавлен 26.08.2012 Рaзрaботка программного приложения (синтаксического aнaлизaторa), которое производит проверку синтaксисa простейшей программы на языке С++. Процедура проверки арифметических и логический выражений. Механизм удаления всех фиктивных переменных из программы.
курсовая работа [27,2 K], добавлен 28.06.2011Процесс создания моей программы "Веб-Браузер" на основе Internet Explorer. Работа с CD-дисках, DVD-дисках, дискетах и прочих переносных устройств памяти. Описание языка программирования. Описание алгоритма. Методика проектирования и реализации программ.
курсовая работа [1,4 M], добавлен 23.05.2015Конструкция, общее устройство и принцип действия накопителей на жестких магнитных дисках. Основные характеристики винчестеров: емкость, среднее время поиска, скорость передачи данных. Наиболее распространенные интерфейсы жестких дисков (SATA, SCSI, IDE).
презентация [324,3 K], добавлен 20.12.2015Аппаратные средства ЭВМ должны работать с программным обеспечением, поэтому для них требуется интерфейс. BIOS дает ЭВМ небольшой встроенный стартовый набор для выполнения остального программного обеспечения на гибких дисках (FDD) и жестких дисках (НDD).
реферат [28,7 K], добавлен 18.07.2008Типы файловых систем, поддерживаемые Windows NT. Методика сжатия данных и динамического кэширования диска. Символы, которые нельзя использовать в имени. Уровень дисководов, логических дисков, устройства чтения компакт-дисков, панель управления, принтеры.
презентация [8,0 K], добавлен 23.10.2013Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.
курсовая работа [2,4 M], добавлен 12.12.2011Проектирование программы, реализующей синтаксический анализ простой программы на языке С: этапы создания, алгоритм ее функционирования, структура, технология обработки информации. Описание программных модулей, интерфейс; выбор инструментальных средств.
курсовая работа [1,6 M], добавлен 12.12.2011Описания службы администрирования диспетчера логических дисков и восстановления системы. Настройка жестких дисков и томов. Управление синхронизацией даты и времени на всех серверах в сети. Сервисы необходимые для нормального функционирования службы.
презентация [136,0 K], добавлен 19.03.2013Технические характеристики накопителей на жестких магнитных дисках и их устройство. Питание и охлаждение накопителей. Неисправности аппаратной и программной частей. Программы для проведения диагностики поверхности накопителя, его головок и электроники.
курсовая работа [483,6 K], добавлен 19.05.2013Накопители на жестких магнитных дисках. Винчестеры с интерфейсом Serial ATA. Магнитные дисковые накопители. Приводы для чтения CD-ROM (компакт-дисков). Возможные варианты загрузки диска в привод. Флэш-память, основные ее преимущества перед дискетами.
презентация [26,5 K], добавлен 20.09.2010Создание программы, которая может предоставить информацию по кредитам, рассчитать сумму ежемесячного платежа и вывести подробную информацию на экран и в печатном формате. Расчет цены программного продукта. Аппаратные и программные средства разработки.
дипломная работа [1,5 M], добавлен 30.06.2012Разработка приложения, которое содержит информацию о гостях, о номерах, об оплате с целью автоматизации процесса регистрации в гостинице. Проектирование базы данных по технологии "Клиент-сервер". Специфика разработки пользовательского интерфейса.
курсовая работа [1,5 M], добавлен 29.12.2013Осуществление работы разрабатываемой программы на основе алгоритма, использующего Z-буфер. Аналитическое описание программной реализации. Алгоритмы основных функций программы. Содержание руководства пользователя. Файлы программы, пункты главного меню.
курсовая работа [1,7 M], добавлен 15.04.2015Изучение истории разработки компакт-диска. Версия Джеймса Рассела. Объем хранимых данных. Информационная структура накопителя. Физические принципы считывания, записи и перезаписи информации. Кодирование информации. Этапы производства компакт-дисков.
контрольная работа [1,3 M], добавлен 08.12.2013Разработка программы для сбора и анализа информации об автобусах на парковке. Назначение и область применения. Алгоритм в словесной форме. Состав технических и программных средств. Разработка приложения в среде визуального программирования C++Builder 6.
курсовая работа [1,5 M], добавлен 06.09.2014Общее понятие о компакт-дисках, их техническая характеристика, устройство, назначение и правила эксплуатации. Структура записывающих оптических дисков, технология их изготовления и требования к качеству. Отличительные особенности DVD и форматы записи.
реферат [713,0 K], добавлен 06.08.2013