From: Francesc A. <fa...@op...> - 2003-10-16 12:05:06
|
Hi, While dealing with memory mapped numarray objects, I'm having some problems to access to the address where the data starts. For normal (i.e. no memory-mapped) objects, I normally used this: PyObject_AsReadBuffer(recarr._data, &self.rbuf, &buflen) that works fine, but after creating a RecArray associated to a memory mapped file in the normal way, i.e.: self.mmfile = memmap.Memmap("prova.out",mode="r") recarr = records.RecArray(self.mmfile[:], formats=self.description._v_recarrfmt, shape=self.totalrecords) then, I'm unable to use the PyObject_AsWriteBuffer anymore. I've tried the following: PyObject_AsReadBuffer(recarr._data, &self.mmrbuf, &buflen) (this returns a -1, failed, value) PyObject_AsReadBuffer(recarr._data._buffer, &self.mmrbuf, &buflen) (this produces a segmentation fault) PyObject_AsReadBuffer(recarr._data.__buffer__(), &self.mmrbuf, &buflen) (another seg fault) Of course, I've checked out that the recarr object is sane (i.e. it has the same data than the file). Any hint? -- Francesc Alted |