LINUX.ORG.RU

Обобщённый ответ: использовать системные вызовы ОС (system calls)

Selecter ★★★★
()

#include <sys/vfs.h>

/**
 * get_fs_size - Определяет размер ФС.
 * @param anyfile Путь к любому файлу на этой ФС.
 * @return Размер ФС в блоках.
 */
long get_fs_size(const char *anyfile)
{
  struct statfs buf;
  statfs(anyfile, &buf);
  return buf.f_blocks;
}

/**
 * get_fs_free - Определяет свободное место на ФС.
 * @param anyfile Путь к любому файлу на этой ФС.
 * @return Размер ФС в блоках.
 */
long get_fs_free(const char *anyfile)
{
  struct statfs buf;
  statfs(anyfile, &buf);
  return buf.f_bfree;
}

Всё гениальное просто... :-)

Spectrum
()
Ответ на: комментарий от anonymous

Это тоже просто.

size_t blksize(const char *anyfile)
{
  struct stat st;
  stat(anyfile, &st);
  return st.st_blksize;
}

Spectrum
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.