fgets не считывает текстовые данные из файла

Пытаюсь считать данные из файла с помощью функции fgets:

FILE* txtfile = fopen(txtfile_name, "r");
    if (txtfile == NULL)
        return EXIT_FAILURE;
    int64_t size = file_size(txtfile);
    char* arr = (char*)malloc(size);
    fgets(arr, size, txtfile);

Функция file_size просто определяет размер файла в байтах, fgets возвращает NULL, из-за чего это может происходить? Спасибо!


Ответы (1 шт):

Автор решения: Harry

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

Соответственно, чтение из файла оказывается невозможным.

→ Ссылка