unsigned _dos_getdiskfree(unsigned char drive, struct diskfree_t *dfptr)
Прототип:
Описание:
Эта функция не определена стандартом ANSI С.
Функция _dos_getdiskfree() возвращает количество свободного места на диске, причем эти данные помещаются в структуру, на которую указывает параметр dfptr, где параметр drive задает диск. Диски нумеруются, начиная с 1, что соответствует диску А. Можно задать диск по умолчанию, присвоив параметру drive величину 0. Структура diskfree_t определена следующим образом:
struct diskfree_t {
unsigned total_clusters;
unsigned avail_clusters;
unsigned sectors_per_cluster;
unsigned bytes_per_sector;
};
unsigned total_clusters;
unsigned avail_clusters;
unsigned sectors_per_cluster;
unsigned bytes_per_sector;
};
В случае успеха функция возвращает 0. При возникновении ошибки возвращается ненулевое значение, а переменная errno устанавливается равной значению EINVAL (недействительный диск).
Пример:
Следующая программа выводит число свободных кластеров, доступных для использования на диске С:
#include <dos.h>
#include <stdio.h>
int main(void)
{
struct diskfree_t p;
_dos_getdiskfree(3, &p); /* диск С */
printf("Number of free clusters is %d.", p.avail_clusters);
return 0;
}
#include <dos.h>
#include <stdio.h>
int main(void)
{
struct diskfree_t p;
_dos_getdiskfree(3, &p); /* диск С */
printf("Number of free clusters is %d.", p.avail_clusters);
return 0;
}