¿Cuál es la diferencia entre el argumento del búfer para abrir () y el tamaño del búfer de lectura anticipada codificado que se usa cuando se recorre un archivo?

Inspirado poresta pregunta, Me pregunto exactamente cuál es el argumento de almacenamiento en búfer opcional para Python'sopen() la función hace De mirarla fuente, Veo quebuffering se pasa asetvbuf para establecer el tamaño del búfer para el flujo (y que no haga nada en un sistema sinsetvbuf, que los documentos confirman).

Sin embargo, cuando se itera sobre un archivo, hay una constante llamadaREADAHEAD_BUFSIZE que parece definir cuántos datos se leen a la vez (esta constante se defineaquí).

Mi pregunta es exactamente cómo elbuffering argumento se relaciona conREADAHEAD_BUFSIZE. Cuando recorro un archivo, ¿cuál define cuántos datos se leen del disco a la vez? ¿Y hay un lugar en la fuente de C que aclare esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta