Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Passing a FILE* from Python into a MinGW/SWIG module

5 views
Skip to first unread message

John Pye

unread,
Mar 14, 2007, 6:57:43 AM3/14/07
to
Hi all

I understand that I can't hope to pass a FILE* from the Windows
version of Python into a SWIG module that I've built using MinGW gcc/g+
+, because apparently the FILE* structure are different and
incompatible.

Is there an official workaround for this? Presumably I need to
implement a mingw-compatible version of all the 'file' class in
Python, eg

import mingw
import myswigmodule

F1 = mingw.file("newfile.txt","rw")
F1.write("somestuff")
F1.seek(0)
F2 = mingw.tmpfile()
myswigmodule.dosomething(F1,F2)
F2.seek(0)
print F2.read()

Has anyone done this? Is there a better way that doesn't require users
of my module to adapt? Do I have to use the dreaded MSVS to compile my
SWIG module?

Cheers
JP

Ross Ridge

unread,
Mar 15, 2007, 12:46:38 PM3/15/07
to
John Pye <john...@gmail.com> wrote:
>Is there an official workaround for this? Presumably I need to
>implement a mingw-compatible version of all the 'file' class in
>Python, eg

I'm not familiar with SWIG, but why not pass Python's own file class?
Method calls on Python's file class will be dispatched to C code in
the Python interpreter and so will use the C runtime that Python was
linked with.

Ross Ridge

--
l/ // Ross Ridge -- The Great HTMU
[oo][oo] rri...@csclub.uwaterloo.ca
-()-/()/ http://www.csclub.uwaterloo.ca/~rridge/
db //

Tommy Nordgren

unread,
Mar 15, 2007, 1:29:01 PM3/15/07
to John Pye, pytho...@python.org

Can you get the file descriptor from the FILE *, and use that?

-------------------------------------
This sig is dedicated to the advancement of Nuclear Power
Tommy Nordgren
tommy.n...@comhem.se

0 new messages