Re: question - php_stream_cast(...) and PHP_STREAM_AS_FD

From: Date: Thu, 12 Feb 2004 19:01:46 +0000
Subject: Re: question - php_stream_cast(...) and PHP_STREAM_AS_FD
References: 1 2  Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-428@lists.php.net to get a copy of this message
Sorry about the last message not replied to the list...... (Im a little late on that but I've been away) I fixed my problem, it had nothing to do with the cast. I also took your advice and removed the nested stream too, its much cleaner now. For anyone who is interested I also found the README.STREAMS to be very helpful. "Wez Furlong" <wez@thebrainroom.com> wrote in message news:002101c3ef23$8f9953b0$8a02a8c0@tron... > If you're writing to a stream, you shouldn't use STREAM_MUST_SEEK, since > it might give you a temporary stream that is not connected to the actual > resource you > opened; such a stream will be deleted when it is closed. > > Generally speaking, you should avoid using casting when possible; can you > give > more details about what you're opening (remote files?). Also, it looks like > you > are nesting streams--can I ask why? (it might be possible to do things a bit > more > cleanly). > > --Wez. > > PS: I hope you found this: > http://uk.php.net/manual/en/streams.php > > ----- Original Message ----- > From: "Justin Hannus" <jhannus@visualconceptsinc.com> > To: <pecl-dev@lists.php.net> > Sent: Monday, February 09, 2004 3:25 PM > Subject: [PECL-DEV] question - php_stream_cast(...) and PHP_STREAM_AS_FD > > > > I'm trying to open a php stream and cast it as an fd so I can use it with > a > > third party library that expects an fd to read from sound files. This is > all > > fine and well for read mode but when I try to open the file in write mode, > > it opens it in read instead. I'm fully aware that the stream must be > opened > > in the same mode as I'm opening the file with (the fd) but I'm not sure if > I > > have the cast correct. Heres a snippet: > > > > // ... from php_stream * php_stream_sf_open(... > > // ... > > self = (struct php_sf_stream_data_t *) emalloc(sizeof(*self)); > > innerstream = php_stream_open_wrapper(path, mode, STREAM_MUST_SEEK | > > options | STREAM_WILL_CAST, opened_path); > > > > if (innerstream) { > > self->mode = strchr(mode, 'r') ? SFM_READ : SFM_WRITE; > > > > if (php_stream_cast(innerstream, PHP_STREAM_AS_FD | > > PHP_STREAM_CAST_RELEASE, (void **) &self->fd, REPORT_ERRORS) == SUCCESS) { > > self->sf = sf_open_fd(self->fd, self->mode, &self->sfinfo, > > SF_TRUE); > > > > // ... more stuff > > > > > > Works fine for me when opened in read mode but also opens in read when I > > specify write. Do I have the cast written correctly? > > > > -- > > Justin Hannus > > Lead Programmer/Web Development > > jhannus@visualconceptsinc.com > > www.visualconceptsinc.com > > [860] 242.1150 ext.125 > > [860] 242.1446 fax > > > > -- > > PECL development discussion Mailing List (http://pecl.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > >

« previous php.pecl.dev (#428) next »