New submission from Pascal Chambon <chambon.pas...@gmail.com>: Hello, It seems there is an important difference between the doc of the IO module, and its implementation so far (until todcay trunk revision 76805)
"buffering is an optional integer used to set the buffering policy. By default full buffering is on. Pass 0 to switch buffering off (only allowed in binary mode), 1 to set line buffering, and an integer > 1 for full buffering." --> actually full buffering only occurs if a negative buffering parameter is given, else it seems th current value i kept as the buffer size - eg. if we give "3", buffering will be 3 bytes... This seems a fine behaviour to me, so this implementation could just be documented as is. ----------- Only case of full buffering in the C iomodule : if (buffering < 0) { buffering = DEFAULT_BUFFER_SIZE; #ifdef HAVE_STRUCT_STAT_ST_BLKSIZE { struct stat st; long fileno; PyObject *res = PyObject_CallMethod(raw, "fileno", NULL); if (res == NULL) goto error; fileno = PyInt_AsLong(res); Py_DECREF(res); if (fileno == -1 && PyErr_Occurred()) goto error; if (fstat(fileno, &st) >= 0) buffering = st.st_blksize; } #endif } ---------- assignee: georg.brandl components: Documentation, IO messages: 96607 nosy: georg.brandl, pakal severity: normal status: open title: IO buffering behaviour not properly documented versions: Python 2.6, Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue7545> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com