PerlIO *PerlIO_stdin(void);
PerlIO *PerlIO_stdout(void);
PerlIO *PerlIO_stderr(void);
PerlIO *PerlIO_open(const char *,const char *);
int PerlIO_close(PerlIO *);
int PerlIO_stdoutf(const char *,...)
int PerlIO_puts(PerlIO *,const char *);
int PerlIO_putc(PerlIO *,int);
int PerlIO_write(PerlIO *,const void *,size_t);
int PerlIO_printf(PerlIO *, const char *,...);
int PerlIO_vprintf(PerlIO *, const char *, va_list);
int PerlIO_flush(PerlIO *);
int PerlIO_eof(PerlIO *);
int PerlIO_error(PerlIO *);
void PerlIO_clearerr(PerlIO *);
int PerlIO_getc(PerlIO *);
int PerlIO_ungetc(PerlIO *,int);
int PerlIO_read(PerlIO *,void *,size_t);
int PerlIO_fileno(PerlIO *);
PerlIO *PerlIO_fdopen(int, const char *);
PerlIO *PerlIO_importFILE(FILE *);
FILE *PerlIO_exportFILE(PerlIO *);
FILE *PerlIO_findFILE(PerlIO *);
void PerlIO_releaseFILE(PerlIO *,FILE *);
void PerlIO_setlinebuf(PerlIO *);
long PerlIO_tell(PerlIO *);
int PerlIO_seek(PerlIO *,off_t,int);
int PerlIO_getpos(PerlIO *,Fpos_t *)
int PerlIO_setpos(PerlIO *,Fpos_t *)
void PerlIO_rewind(PerlIO *);
int PerlIO_has_base(PerlIO *);
int PerlIO_has_cntptr(PerlIO *);
int PerlIO_fast_gets(PerlIO *);
int PerlIO_canset_cnt(PerlIO *);
char *PerlIO_get_ptr(PerlIO *);
int PerlIO_get_cnt(PerlIO *);
void PerlIO_set_cnt(PerlIO *,int);
void PerlIO_set_ptrcnt(PerlIO *,char *,int);
char *PerlIO_get_base(PerlIO *);
int PerlIO_get_bufsiz(PerlIO *);
#define them to the
I/O mechanism selected at Configure time.
The functions are modeled on those in stdio.h, but parameter order has been ``tidied up a little''.
stdin, stdout, stderr. They are written to look like ``function calls'' rather than variables
because this makes it easier to make them function calls if platform cannot export data to loaded modules, or if
(say) different ``threads'' might have different values.
fopen()/fdopen() arguments are the same.
fprintf()/vfprintf equivalents.
printf() equivalent. printf is #defined to this
function, so it is (currently) legal to use printf(fmt,...) in perl sources.
fread() and fwrite(). Note
that arguments are different, there is only one ``count'' and order has
``file'' first.
fputs() and fputc(). Note
that arguments have been revised to have ``file'' first.
ungetc(). Note that arguments have been
revised to have ``file'' first.
getc().
feof().
ferror().
fileno(), note that on some platforms, the
meaning of ``fileno'' may not match Unix.
clearerr(), i.e., clears 'eof' and 'error'
flags for the ``stream''.
fflush().
ftell().
fseek().
fgetpos() and fsetpos(). If
platform does not have the stdio calls then they are implemented in terms
of PerlIO_tell() and PerlIO_seek().
rewind(). Note may be redefined in terms
of PerlIO_seek() at some point.
tmpfile(), i.e., returns an anonymous
PerlIO which will automatically be deleted when closed.
The fact that such a FILE * has been 'exported' is recorded, and may affect future PerlIO operations on the original PerlIO *.
setlinebuf(). Use is deprecated pending
further discussion. (Perl core uses it only when ``dumping'' is has nothing to do with $| auto-flush.)
PerlIO_fast_gets(f) = PerlIO_has_cntptr(f) && \
PerlIO_canset_cnt(f) && \
`Can set pointer into buffer'