Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Листинг 7



Листинг 7

Программа для просмотра имен // томов текущего или первичного файл-сервера // Файл volinfo\volinfo.cpp // // (C) A. Frolov, 1993 // =================================================== #include <stdlib.h> #include <stdio.h> #define WORD unsigned int #define BYTE unsigned char extern "C" int GetNetWareShellVersion(char *,char *, char *); extern "C" int GetVolumeName(int, char*); extern "C" int GetVolumeInfoWithNumber(BYTE, char*, WORD*, WORD*, WORD*, WORD*, WORD*, WORD*); void main(void) { char MajorVersion=0; char MinorVersion=0; char Revision=0; char VolumeName[64][16]; int ccode, i; WORD TotalBlocks, SectorsPerBlock, AvailableBlocks; WORD TotalDirectorySlots, AvailableDirectorySlots, Removable; long TotalSectors, AvailableSectors; printf("\n*VOLINFO* (C) Frolov A., 1993\n"); asm push si GetNetWareShellVersion(&MajorVersion, &MinorVersion, &Revision); asm pop si if(MajorVersion == 0) { printf("\nОболочка NetWare не загружена\n"); return; } printf("\nСмонтированные тома:\n" "----------------------------------------------\n"); printf("Имя тома\tВсего Кбайт\tСвободно Кбайт\n"); printf("----------------------------------------------"); // Цикл по томам файл-сервера. for(i=0; i<64; i++) { // Получаем и выводим имя тома ccode = GetVolumeName(i, VolumeName[i]); printf("\n%s\t", VolumeName[i]); // Если ошибка или тома нет, выходим из цикла if(ccode) break; if(!*(VolumeName[i])) break; // Получаем информацию о томе ccode = GetVolumeInfoWithNumber(i, VolumeName[i], &TotalBlocks, &SectorsPerBlock, &AvailableBlocks, &TotalDirectorySlots,&AvailableDirectorySlots, &Removable); if(!ccode) { // Подсчитываем общее количество секторов на томе // и количество свободных секторов TotalSectors = (long)TotalBlocks * SectorsPerBlock; AvailableSectors = (long)AvailableBlocks * SectorsPerBlock; // Выводим размер томов и размер свободного пространства // в килобайтах. Учитываем, что размер сектора // составляет 512 байт. printf("\t%ld\t\t%ld", ((long)TotalSectors * 512L) / 1024L, ((long)AvailableSectors * 512L) / 1024L); } } }

Вот что программа VOLINFO вывела на экран, когда мы запустили ее на нашем сервере SYSPRG: *VOLINFO* (C) Frolov A., 1993 Смонтированные тома: ---------------------------------------------- Имя тома Всего Кбайт Свободно Кбайт ---------------------------------------------- SYS 140000 8084 VOL1 178864 13768 VOL2 160000 13372 VOL3 169024 924









- Начало -  - Назад -  - Вперед -