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


Программа VOLINFO


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

Программа в цикле с помощью функции GetVolumeName() получает имена смонтированных томов. Если первый байт имени тома содержит двоичный ноль, программа выходит из цикла.

Для каждого тома программа получает информацию о томе, вызывая функцию GetVolumeInfoWithNumber().

// =================================================== // Листинг 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]);

// Если ошибка или тома нет, выходим из цикла




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



Книжный магазин