PHPAPI php_stream_filter *_php_stream_filter_alloc(php_stream_filter_ops *fops, void *abstract, int persistent STREAMS_DC) { php_stream_filter *filter; filter = (php_stream_filter*) pemalloc_rel_orig(sizeof(php_stream_filter), persistent); memset(filter, 0, sizeof(php_stream_filter)); filter->fops = fops; Z_PTR(filter->abstract) = abstract; filter->is_persistent = persistent; return filter; }
int r; PHP_STDIOP_GET_FD(fd, d); r = zend_fstat(fd, &d->sb); d->cached_fstat = r == 0; return r; } return 0; } static php_stream *_php_stream_fopen_from_fd_int(int fd, const char *mode, const char *persistent_id STREAMS_DC) { php_stdio_stream_data *self; self = pemalloc_rel_orig(sizeof(*self), persistent_id); memset(self, 0, sizeof(*self)); self->file = NULL; self->is_pipe = 0; self->lock_flag = LOCK_UN; self->is_process_pipe = 0; self->temp_name = NULL; self->fd = fd; #ifdef PHP_WIN32 self->is_pipe_blocking = 0; #endif return php_stream_alloc_rel(&php_stream_stdio_ops, self, persistent_id, mode); } static php_stream *_php_stream_fopen_from_file_int(FILE *file, const char *mode STREAMS_DC)
if (!d->cached_fstat || force) { int fd; int r; PHP_STDIOP_GET_FD(fd, d); r = fstat(fd, &d->sb); d->cached_fstat = r == 0; return r; } return 0; } static php_stream *_sw_php_stream_fopen_from_fd_int(int fd, const char *mode, const char *persistent_id STREAMS_DC) { php_stdio_stream_data *self = (php_stdio_stream_data *) pemalloc_rel_orig(sizeof(*self), persistent_id); memset(self, 0, sizeof(*self)); self->file = NULL; self->is_pipe = 0; self->lock_flag = LOCK_UN; self->is_process_pipe = 0; self->temp_name = NULL; self->fd = fd; #ifdef PHP_WIN32 self->is_pipe_blocking = 0; #endif return php_stream_alloc_rel(&sw_php_stream_stdio_ops, self, persistent_id, mode); } static size_t php_stdiop_write(php_stream *stream, const char *buf, size_t count)