Дискові структури даних DOS. Визначення номерів кластерiв диску, страница 2

    Функцiя Find_Name здiйснює пошук iмени у каталозi.  Тут cname - потрiбне iм`я,  функцiя повертає iндекс знайденого  елемента  у масивi dir або (-1).

    Функцiя End_of_Job здiйснює видачу на екран  рiзних  повiдомлень при помилках або при завершеннi програми.

Результати:

Лабораторная робота N10

Дискові структури даних DOS.

Файл D:\TC\TC.EXE у FAT займає такi кластери :

Натискуйте будь-яку клавiшу доки не з`явится <КIНЕЦЬ ФАЙЛА>.

+<ПОЧАТОК ФАЙЛУ>

+->2410--->2411--->2412--->2413--->2414--->2415--->2416--->2417-

-->2418--->2419--->241a--->241b--->241c--->241d--->241e--->241f-

-->2420--->2421--->2422--->2423--->2424--->2425--->2426--->2427-

-->2428--->2429--->242a--->242b--->242c--->242d--->242e--->242f-

-->2430--->2431--->2432--->2433--->2434--->2435--->2436--->2437-

-->2438--->2439--->243a--->243b--->243c--->243d--->243e--->243f-

-->2440--->2441--->2442--->2443--->2444--->2445--->2446--->2447-

-->2448--->2449--->244a--->244b--->244c--->244d--->244e--->244f-

-->2450--->2451--->2452--->2453--->2454--->2455--->2456--->2457-

-->2458--->2459--->245a--->245b--->245c--->245d--->245e--->245f-

-->2460--->2461--->2462--->2463--->2464--->2465--->2466--->2467-

-->2468--->2469--->246a--->246b--->246c--->246d--->246e--->246f-

-->2470--->2471--->2472--->2473--->2474--->2475--->2476--->2477-

-->2478--->2479--->247a--->247b--->247c--->247d--->247e--->247f-

-->2480--->2481--->2482--->2483--->2484--->2485--->2486--->2487-

-->2488--->2489--->248a--->248b--->248c--->248d--->248e--->248f-

-->2490--->2491--->2492--->2493--->2494--->2495--->2496--->2497-

-->2498--->2499--->249a--->249b--->249c--->249d---><КIНЕЦЬ ФАЙЛА>

Кiлькiсть кластерів, якi займає файл: 142

                            Натиснiть будь-яку клавiшу...

Постановка задачі №2: Розробити програму, яка виводить на екран розмір будь-якого файлу у байтах.

Текст програми Length:

#include <conio.h>

#include <io.h>

#include <stdio.h>

#include <fcntl.h>

int main(void)

{ int handle;

  long  length;

  char fname[80], c;

  // Запрашиваем имя файла, с которым будем работать

  clrscr();

  printf("Введите имя файла(полный путь с учетом регистров букв): ");

  gets(fname);

  // Открываем файл

  handle = open(fname, O_BINARY | O_RDONLY);

  // Если такого файла нет, выводим сообщение об ошибке

  // и завершаем работу программы

  if(handle == -1)

  { printf("\nНет такого файла!");

    return(-1);}

  // Определяем и выводим на экран

  // размер файла в байтах

  length = filelength(handle);

  printf("\nДлина файла %s составляет %ld байт\n",fname, length);

  c=getch();

  // Закрываем файл

  close(handle);

  return 0; }

Структура програми.

Програма складається тільки з головної програми int main (void).

Опис змінних.

int handle; - використовується для відкриття файлу, та перевірки на його існування;

long  length; - потрібна для визначення розміру файлу у байтах

char fname[80] – ім’я файлу (максимальна кількість символів – 80);

char cдодаткова змінна;

Опис алгоритму програми.

Вводится повний шлях до файлу та його повне ім’я. Якщо цей файл існує, то програма продовжує роботу з ним, але якщо ні, то виводиться повідомлення про помилку і завершується робота програми.

В разі нормальної роботи на екран виводиться інформація про вказаний файл (його розмір у байтах).

Результати:

Введите имя файла(полный путь с учетом регистров букв): d:\Hakers\Max\Spo\Lab11\lab10.txt

Длина файла d:\Hakers\Max\Spo\Lab11\lab10.txt  составляет  22025 байт

Висновки: В ході лабораторної роботи було відкомпільованно базовий варіант програми, яка виводить список кластерів вказаного файлу.

Також розроблено програму, яка визначає розмір файлу у байтах.