[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.c++

fstream -> FILE*

barcaroller

11/29/2008 1:11:00 AM


Is it possible to somehow get a FILE* file pointer from an fstream object?
The reason I'm asking is that I have C++ code that now needs to link to a C
library which requires FILE* file pointers.


2 Answers

Zjargands

11/29/2008 7:00:00 AM

0

barcaroller wrote:
> Is it possible to somehow get a FILE* file pointer from an fstream object?
> The reason I'm asking is that I have C++ code that now needs to link to a C
> library which requires FILE* file pointers.

I don't believe you can. As a class, fstream has no reason to use a
FILE* internally, it can use whatever it wants. It should be trivial to
extract the open file name however, and then reopen the file using the c
library. Make suer you set your put and get pointers for the file to the
same place they are in the fstream.


Hendrik Schober

11/29/2008 10:53:00 AM

0

barcaroller wrote:
> Is it possible to somehow get a FILE* file pointer from an fstream object?
> The reason I'm asking is that I have C++ code that now needs to link to a C
> library which requires FILE* file pointers.

No. To portably do this, you'll have to write your own file
stream buffer which is implemented in terms of 'FILE*' and
provides a means to get at the underlying 'FILE*'. It's not
trivial to do this, but it isn't all that hard either.
If non-portable is enough for you you can search for an std
lib implementation for your platform that does this. There
might be one.

Schobi