В чем разница между буферным аргументом open () и жестко закодированным размером буфера readahead, используемым при переборе файла?

Вдохновленэтот вопросМне интересно, что именно необязательный аргумент буферизации для Pythonopen() функция делает. Смотря наисточник, Я вижу этоbuffering передается вsetvbuf установить размер буфера для потока (и что он ничего не делает в системе безsetvbuf, что подтверждают документы).

Однако, когда вы перебираете файл, появляется константаREADAHEAD_BUFSIZE который, кажется, определяет, сколько данных читается за один раз (эта константа определенаВот).

Мой вопрос, как именноbuffering аргумент относится кREADAHEAD_BUFSIZE, Когда я перебираю файл, который определяет, сколько данных считывается с диска за раз? И есть ли место в источнике C, которое проясняет это?

Ответы на вопрос(2)

Ваш ответ на вопрос