[pyar] [Aporte] Para los que estan escribiendo proyectos.

QliX=D! [aka EHB] qlixed en gmail.com
Jue Oct 21 17:52:33 ART 2010


2010/10/21 QliX=D! [aka EHB] <qlixed en gmail.com>:
> Pero entonces un close en python no asegura un flush? es dependiente
> de la implementacion?.
> Despertaron mi sherlock holmes....
>
> EHB


Che me respondo a mi mismo:
aca: http://svn.python.org/view/python/trunk/Modules/_io/fileio.c?view=markup

siguiendo un toque el codigo, veo que:

fileio_methods[] = {
   [...]
#endif
    {"close",    (PyCFunction)fileio_close,        METH_NOARGS,  close_doc},
[...]

Luego:

static PyObject *
fileio_close(fileio *self)
{
   [...]
    errno = internal_close(self);
   [...]

Y llegamos a:

/* Returns 0 on success, -1 with exception set on failure. */
static int
internal_close(fileio *self)
{
   [...]
            Py_BEGIN_ALLOW_THREADS
            err = close(fd);
            if (err < 0)
                save_errno = errno;
            Py_END_ALLOW_THREADS
        [...]

Que usa close(fd) que es el viejo y conocido close de C.
Que segun tengo entendido flushea el buffer antes de cerrar el filedescriptor.
Por lo tanto no deberia ser necesario hacer el os.system("sync"), debe
existir algun otro problema por el cual te cuelga y vuelca el core...



More information about the pyar mailing list