summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/pod/perlapio.pod
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/pod/perlapio.pod')
-rw-r--r--contrib/perl5/pod/perlapio.pod274
1 files changed, 0 insertions, 274 deletions
diff --git a/contrib/perl5/pod/perlapio.pod b/contrib/perl5/pod/perlapio.pod
deleted file mode 100644
index 90475a9..0000000
--- a/contrib/perl5/pod/perlapio.pod
+++ /dev/null
@@ -1,274 +0,0 @@
-=head1 NAME
-
-perlapio - perl's IO abstraction interface.
-
-=head1 SYNOPSIS
-
- 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 *, int flags);
- FILE *PerlIO_exportFILE(PerlIO *, int flags);
- 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 *);
-
-=head1 DESCRIPTION
-
-Perl's source code should use the above functions instead of those
-defined in ANSI C's I<stdio.h>. The perl headers will C<#define> them to
-the I/O mechanism selected at Configure time.
-
-The functions are modeled on those in I<stdio.h>, but parameter order
-has been "tidied up a little".
-
-=over 4
-
-=item B<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).
-
-=item B<PerlIO_stdin()>, B<PerlIO_stdout()>, B<PerlIO_stderr()>
-
-Use these rather than C<stdin>, C<stdout>, C<stderr>. They are written
-to look like "function calls" rather than variables because this makes
-it easier to I<make them> function calls if platform cannot export data
-to loaded modules, or if (say) different "threads" might have different
-values.
-
-=item B<PerlIO_open(path, mode)>, B<PerlIO_fdopen(fd,mode)>
-
-These correspond to fopen()/fdopen() arguments are the same.
-
-=item B<PerlIO_printf(f,fmt,...)>, B<PerlIO_vprintf(f,fmt,a)>
-
-These are fprintf()/vfprintf() equivalents.
-
-=item B<PerlIO_stdoutf(fmt,...)>
-
-This is printf() equivalent. printf is #defined to this function,
-so it is (currently) legal to use C<printf(fmt,...)> in perl sources.
-
-=item B<PerlIO_read(f,buf,count)>, B<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.
-
-=item B<PerlIO_close(f)>
-
-=item B<PerlIO_puts(f,s)>, B<PerlIO_putc(f,c)>
-
-These correspond to fputs() and fputc().
-Note that arguments have been revised to have "file" first.
-
-=item B<PerlIO_ungetc(f,c)>
-
-This corresponds to ungetc().
-Note that arguments have been revised to have "file" first.
-
-=item B<PerlIO_getc(f)>
-
-This corresponds to getc().
-
-=item B<PerlIO_eof(f)>
-
-This corresponds to feof().
-
-=item B<PerlIO_error(f)>
-
-This corresponds to ferror().
-
-=item B<PerlIO_fileno(f)>
-
-This corresponds to fileno(), note that on some platforms,
-the meaning of "fileno" may not match Unix.
-
-=item B<PerlIO_clearerr(f)>
-
-This corresponds to clearerr(), i.e., clears 'eof' and 'error'
-flags for the "stream".
-
-=item B<PerlIO_flush(f)>
-
-This corresponds to fflush().
-
-=item B<PerlIO_tell(f)>
-
-This corresponds to ftell().
-
-=item B<PerlIO_seek(f,o,w)>
-
-This corresponds to fseek().
-
-=item B<PerlIO_getpos(f,p)>, B<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().
-
-=item B<PerlIO_rewind(f)>
-
-This corresponds to rewind(). Note may be redefined
-in terms of PerlIO_seek() at some point.
-
-=item B<PerlIO_tmpfile()>
-
-This corresponds to tmpfile(), i.e., returns an anonymous
-PerlIO which will automatically be deleted when closed.
-
-=back
-
-=head2 Co-existence with stdio
-
-There is outline support for co-existence of PerlIO with stdio.
-Obviously if PerlIO is implemented in terms of stdio there is
-no problem. However if perlio is implemented on top of (say) sfio
-then mechanisms must exist to create a FILE * which can be passed
-to library code which is going to use stdio calls.
-
-=over 4
-
-=item B<PerlIO_importFILE(f,flags)>
-
-Used to get a PerlIO * from a FILE *.
-May need additional arguments, interface under review.
-
-=item B<PerlIO_exportFILE(f,flags)>
-
-Given an PerlIO * return a 'native' FILE * suitable for
-passing to code expecting to be compiled and linked with
-ANSI C I<stdio.h>.
-
-The fact that such a FILE * has been 'exported' is recorded,
-and may affect future PerlIO operations on the original
-PerlIO *.
-
-=item B<PerlIO_findFILE(f)>
-
-Returns previously 'exported' FILE * (if any).
-Place holder until interface is fully defined.
-
-=item B<PerlIO_releaseFILE(p,f)>
-
-Calling PerlIO_releaseFILE informs PerlIO that all use
-of FILE * is complete. It is removed from list of 'exported'
-FILE *s, and associated PerlIO * should revert to original
-behaviour.
-
-=item B<PerlIO_setlinebuf(f)>
-
-This corresponds to setlinebuf(). Use is deprecated pending
-further discussion. (Perl core uses it I<only> when "dumping";
-it has nothing to do with $| auto-flush.)
-
-=back
-
-In addition to user API above there is an "implementation" interface
-which allows perl to get at internals of PerlIO.
-The following calls correspond to the various FILE_xxx macros determined
-by Configure. This section is really of interest to only those
-concerned with detailed perl-core behaviour or implementing a
-PerlIO mapping.
-
-=over 4
-
-=item B<PerlIO_has_cntptr(f)>
-
-Implementation can return pointer to current position in the "buffer" and
-a count of bytes available in the buffer.
-
-=item B<PerlIO_get_ptr(f)>
-
-Return pointer to next readable byte in buffer.
-
-=item B<PerlIO_get_cnt(f)>
-
-Return count of readable bytes in the buffer.
-
-=item B<PerlIO_canset_cnt(f)>
-
-Implementation can adjust its idea of number of
-bytes in the buffer.
-
-=item B<PerlIO_fast_gets(f)>
-
-Implementation has all the interfaces required to
-allow perl's fast code to handle <FILE> mechanism.
-
- PerlIO_fast_gets(f) = PerlIO_has_cntptr(f) && \
- PerlIO_canset_cnt(f) && \
- `Can set pointer into buffer'
-
-=item B<PerlIO_set_ptrcnt(f,p,c)>
-
-Set pointer into buffer, and a count of bytes still in the
-buffer. Should be used only to set
-pointer to within range implied by previous calls
-to C<PerlIO_get_ptr> and C<PerlIO_get_cnt>.
-
-=item B<PerlIO_set_cnt(f,c)>
-
-Obscure - set count of bytes in the buffer. Deprecated.
-Currently used in only doio.c to force count < -1 to -1.
-Perhaps should be PerlIO_set_empty or similar.
-This call may actually do nothing if "count" is deduced from pointer
-and a "limit".
-
-=item B<PerlIO_has_base(f)>
-
-Implementation has a buffer, and can return pointer
-to whole buffer and its size. Used by perl for B<-T> / B<-B> tests.
-Other uses would be very obscure...
-
-=item B<PerlIO_get_base(f)>
-
-Return I<start> of buffer.
-
-=item B<PerlIO_get_bufsiz(f)>
-
-Return I<total size> of buffer.
-
-=back
OpenPOWER on IntegriCloud