Я хотел знать способ узнать, который является размером блока диска через функцию или компилятор, постоянный в C..
спасибо
Информация о том, что вы используете компилятор gcc, не интересна, поскольку компиляторы не интересуются размером блока файловой системы, они даже не знают о том, что файловая система может существовать ... ответ зависит от системы (MS Windows? GNU / Linux или другая * nix / * nix, например ОС?); в POSIX у вас есть функция stat
, вы можете использовать ее, чтобы иметь структуру stat, которая содержит поле st_blksize
(размер блока для ввода-вывода файловой системы), которое может быть тем, что вы интересует.
ADD
Пример
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
int main()
{
struct stat fi;
stat("/", &fi);
printf("%d\n", fi.st_blksize);
return 0;
}
Сообщает вам о файловой системе, используемой в / (корень); например для меня он выводит 4096.
statvfs () сообщает о файловой системе. stat () сообщает о данном файле. Почти всегда это будет одно и то же, но, поскольку вы запросили результат у файловой системы, правильный ответ для систем POSIX - вызвать statvfs ().