DESCRIPTION
Perl's source code should use the above functions instead of those defined in ANSI C's stdio.h. The perl headers will #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''.
PerlIO *
This takes the place of FILE *. Like FILE * it should be treated as opaque (it is probably safe to assume it is a pointer to something).
PerlIO_stdin(), PerlIO_stdout(), PerlIO_stderr()
Use these rather than 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.
PerlIO_open(path, mode), PerlIO_fdopen(fd,mode)
These correspond to fopen()/fdopen() arguments are the same.
PerlIO_printf(f,fmt,...), PerlIO_vprintf(f,fmt,a)
These are fprintf()/vfprintf() equivalents.
PerlIO_stdoutf(fmt,...)
This is printf() equivalent. printf is #defined to this function, so it is (currently) legal to use printf(fmt,...) in perl sources.
PerlIO_read(f,buf,count), PerlIO_write(f,buf,count)
These correspond to fread() and fwrite(). Note that arguments are different, there is only one ``count'' and order has ``file'' first.
PerlIO_close(f)
PerlIO_puts(f,s), PerlIO_putc(f,c)
These correspond to fputs() and fputc(). Note that arguments have been revised to have ``file'' first.
PerlIO_ungetc(f,c)
This corresponds to ungetc(). Note that arguments have been revised to have ``file'' first.
PerlIO_getc(f)
This corresponds to getc().
PerlIO_eof(f)
This corresponds to feof().
PerlIO_error(f)
This corresponds to ferror().
PerlIO_fileno(f)
This corresponds to fileno(), note that on some platforms, the meaning of ``fileno'' may not match Unix.
PerlIO_clearerr(f)
This corresponds to clearerr(), i.e., clears 'eof' and 'error' flags for the ``stream''.
PerlIO_flush(f)
This corresponds to fflush().
PerlIO_tell(f)
This corresponds to ftell().
PerlIO_seek(f,o,w)
This corresponds to fseek().
PerlIO_getpos(f,p), PerlIO_setpos(f,p)
These correspond to fgetpos() and fsetpos(). If platform does not have the stdio calls then they are implemented in terms of PerlIO_tell() and PerlIO_seek().
PerlIO_rewind(f)
This corresponds to rewind(). Note may be redefined in terms of PerlIO_seek() at some point.
PerlIO_tmpfile()
This corresponds to tmpfile(), i.e., returns an anonymous PerlIO which will automatically be deleted when closed.
