Программа, выводящая информацию о логических дисках

Проектирование приложения, выводящего информацию о логических дисках: размер диска, свободное место, кластеры. Выведение номера тома, буфер, название. Последовательность смешения битовой маски всех дисков. Пример интерфейса программы и ее запуск.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.