develooper Front page | perl.inline | Postings from August 2001

Re: Passing open fd to C space

Thread Previous | Thread Next
From:
Inline Reader
Date:
August 20, 2001 18:48
Subject:
Re: Passing open fd to C space
Message ID:
F1669ssssGKeD59KuER00002ca9@hotmail.com


Ha, I admit I didn't even check if there were a typemap for SV* -> FILE* !

So that's one way to do it, excellent. Anybody know how to use the 
object-oriented handles like IO::File for this?

Thanks,


>
>This works for me:
>
>----8<----
>use Inline C;
>
>open FOO, ">foo" or die "Can't write foo";
>print FOO "This is Perl speaking.\n";
>c_print(FOO, "This is C speaking.\n");
>c_print(\*FOO, "This is C again.\n");
>c_print(\*STDOUT, "Verbosely C.\n");
>close FOO;
>
>__END__
>__C__
>
>void c_print(FILE *fd, char *msg) {
>     fprintf(fd, msg);
>}
>---->8----
>
>Later,
>Neil
>
>Inline Reader [20/08/01 14:17 -0700]:
> >
> >
> > I would be grateful to get any clues as to how to get the fd (either 
>FILE*
> > or PerlIO* or the lower level structs) out of an IO::File and similar
> > objects. I would like to be able to pass a filehandle as an alternative 
>to
> > passing a string into C space. I've made the requisite forays into 
>perlapi,
> > perlguts, perlapio, Inline::C, Inline::C-Cookbook, etc.
> >
> > The upshot is that it's trivial to create and open a filehandle in C 
>space,
> > but I would like to have the user open it in perl and pass it to the 
>inlined
> > C.
> >
> > Cheers!
> >
> >
> >
> >
> > _________________________________________________________________
> > Get your FREE download of MSN Explorer at 
>http://explorer.msn.com/intl.asp

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp


Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About