c - Is it possible to use functions that acts on FILE* on custom structures? -
very see libraries implements own stream functionalities, instead of using file*
. typical interface have close function, similar fclose()
, , several open functions, 1 of mimics fopen()
, 1 of accepts few callbacks should used open/close stream, read to/write stream.
as reference, examples of talking http://www.xmlsoft.org/xmlio.html or https://developer.gnome.org/gio/.
the approach, in general, seems straightforward me, these libraries not implement replacement functions in standard library (e.g., fscanf()
, fprintf()
, ...).
thus wonder if extension mechanism available standard library file*
(e.g.: opening providing callbacks low-level required functionalities). not able find reference capability, guess not part of standard.
anyway, here question: functionality available in c standard library (any standard fine, long portable)? if not there easy (i.e., not require re-implement whole stdio.h functions) option allows implement on top of standard library?
it depends on c library you're using. glibc, example, supports custom streams through fopencookie (further documentation here). freebsd (and other bsds well, including os x) have funopen. doesn't microsoft's c library supports such feature.
Comments
Post a Comment