В соответствии со стандартом C, setbuf()
/ setvbuf()
должен вызываться после fopen()
и перед чем-либо еще.Они устанавливают режим буферизации и размер буфера для только что открытого файла.Это подразумевает, что по крайней мере на уровне C fopen()
ничего не читает из файла, который он открыл.
Базовая реализация файловой системы в ОС, однако, может читать вперед в файловый кеш, но это явноне определено в стандарте языка.Это необходимо выяснить в документации по ОС или экспериментально.
_iobuf
не определено в стандарте C.Хотя я могу «угадать», что это такое, вряд ли вам нужно о чем-то беспокоиться (в любом случае он не будет содержать файловый буфер фиксированного размера C, а скорее будет содержать пару значений: указатель на буфер и размер буфера).