"The typical way to get the size of a file is to use the C library function stat:
#include
...
struct stat results;
if (stat("input.bin", &results) == 0)
// The size of the file in bytes is in
// results.st_size
else
// An error occurred"
Тогда почему тут stat называют и используют как функцию? Гугл говорит что в C нельзя перегружать операторы в структурах.
> Гугл говорит что в C нельзя перегружать операторы в структурах
...но в С имя функции вполне может совпадать с именем тега структуры -- это два разных пространства имён.
@DancingOnWater да, конструктор возвращает указатель на созданный объект. С нулем его сравнивать некорректно, лучше с NULL.
Но если здесь не C++, а C, то @jcmvbkbc прав, и stat() -не конструктор класса, а просто функция.
@jcmvbkbc, да, не правильно выразился, я выразился можно сравнить результат конструктора с нулем? М.б. если есть конструктор с int, то в C++ такое возможно, а вот в Си этот фокус уже не пройдет, вроде как
@Ocelot нет, конструктор возвращает объект, указатель возвращает new
> можно сравнить результат конструктора с нулем? М.б. если есть конструктор с int, то в C++ такое возможно @DancingOnWater это один из вариантов. Ещё один -- если есть оператор == (const stat&, int). Ещё один -- если у stat есть оператор приведения типа к int.