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