28static ssize_t zend_stream_stdio_reader(
void *
handle,
char *
buf,
size_t len)
33static void zend_stream_stdio_closer(
void *
handle)
40static size_t zend_stream_stdio_fsizer(
void *
handle)
67 handle->filename = filename ? zend_string_init(filename,
strlen(filename), 0) :
NULL;
73 handle->filename = filename ? zend_string_init(filename,
strlen(filename), 0) :
NULL;
79 handle->filename = zend_string_copy(filename);
115 for (
n = 0;
n <
len && (c = zend_stream_getc(file_handle)) != EOF && c !=
'\n'; ++
n) {
131 if (file_handle->
buf) {
156 file_size = zend_stream_fsize(file_handle);
157 if (file_size == (
size_t)-1) {
165 while ((read = zend_stream_read(file_handle, *
buf +
size, file_size -
size)) > 0) {
175 size_t size = 0, remain = 4*1024;
179 while ((read = zend_stream_read(file_handle, *
buf +
size, remain)) > 0) {
200 if (file_handle->
len == 0) {
276 zend_file_handle_dtor(file_handle);
fread($stream, int $length)
memset(ptr, 0, type->size)
zend_ffi_ctype_name_buf buf
zend_string * opened_path
union _zend_file_handle::@045057025306333206016200356074063117305134322373 handle
zend_stream_closer_t closer
zend_stream_fsizer_t fsizer
zend_stream_reader_t reader
ZEND_API FILE *(* zend_fopen)(zend_string *filename, zend_string **opened_path)
ZEND_API zend_result(* zend_stream_open_function)(zend_file_handle *handle)
#define safe_erealloc(ptr, nmemb, size, offset)
#define erealloc(ptr, size)
#define safe_emalloc(nmemb, size, offset)
zend_string_release_ex(func->internal_function.function_name, 0)
struct _zend_file_handle zend_file_handle
ZEND_API void zend_llist_destroy(zend_llist *l)
ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int(*compare)(void *element1, void *element2))
ZEND_API void zend_llist_init(zend_llist *l, size_t size, llist_dtor_func_t dtor, unsigned char persistent)
struct _zend_string zend_string
ZEND_API zend_result zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t *len)
ZEND_DLIMPORT int isatty(int fd)
ZEND_API void zend_stream_init_filename_ex(zend_file_handle *handle, zend_string *filename)
ZEND_API zend_result zend_stream_open(zend_file_handle *handle)
void zend_stream_shutdown(void)
ZEND_API void zend_stream_init_fp(zend_file_handle *handle, FILE *fp, const char *filename)
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle)
ZEND_API void zend_stream_init_filename(zend_file_handle *handle, const char *filename)
void zend_stream_init(void)
void(* zend_stream_closer_t)(void *handle)
size_t(* zend_stream_fsizer_t)(void *handle)
ssize_t(* zend_stream_reader_t)(void *handle, char *buf, size_t len)
ZEND_RESULT_CODE zend_result