Skip to content

Latest commit

 

History

History
executable file
·
1164 lines (791 loc) · 35.3 KB

perlapio.pod

File metadata and controls

executable file
·
1164 lines (791 loc) · 35.3 KB

NAME

perlapio - perl ��勖�処院��ュ�阪����ゃ�潟�帥�若����с�若�

SYNOPSIS

#define PERLIO_NOT_STDIO 0    /* For co-existence with stdio only */
#include <perlio.h>           /* Usually via #include <perl.h> */

PerlIO *PerlIO_stdin(void);
PerlIO *PerlIO_stdout(void);
PerlIO *PerlIO_stderr(void);

PerlIO *PerlIO_open(const char *path,const char *mode);
PerlIO *PerlIO_fdopen(int fd, const char *mode);
PerlIO *PerlIO_reopen(const char *path, const char *mode, PerlIO *old);  /* deprecated */
int     PerlIO_close(PerlIO *f);

int     PerlIO_stdoutf(const char *fmt,...)
int     PerlIO_puts(PerlIO *f,const char *string);
int     PerlIO_putc(PerlIO *f,int ch);
int     PerlIO_write(PerlIO *f,const void *buf,size_t numbytes);
int     PerlIO_printf(PerlIO *f, const char *fmt,...);
int     PerlIO_vprintf(PerlIO *f, const char *fmt, va_list args);
int     PerlIO_flush(PerlIO *f);

int     PerlIO_eof(PerlIO *f);
int     PerlIO_error(PerlIO *f);
void    PerlIO_clearerr(PerlIO *f);

int     PerlIO_getc(PerlIO *d);
int     PerlIO_ungetc(PerlIO *f,int ch);
int     PerlIO_read(PerlIO *f, void *buf, size_t numbytes);

int     PerlIO_fileno(PerlIO *f);

void    PerlIO_setlinebuf(PerlIO *f);

Off_t   PerlIO_tell(PerlIO *f);
int     PerlIO_seek(PerlIO *f, Off_t offset, int whence);
void    PerlIO_rewind(PerlIO *f);

int     PerlIO_getpos(PerlIO *f, SV *save);        /* prototype changed */
int     PerlIO_setpos(PerlIO *f, SV *saved);       /* prototype changed */

int     PerlIO_fast_gets(PerlIO *f);
int     PerlIO_has_cntptr(PerlIO *f);
int     PerlIO_get_cnt(PerlIO *f);
char   *PerlIO_get_ptr(PerlIO *f);
void    PerlIO_set_ptrcnt(PerlIO *f, char *ptr, int count);

int     PerlIO_canset_cnt(PerlIO *f);              /* deprecated */
void    PerlIO_set_cnt(PerlIO *f, int count);      /* deprecated */

int     PerlIO_has_base(PerlIO *f);
char   *PerlIO_get_base(PerlIO *f);
int     PerlIO_get_bufsiz(PerlIO *f);

PerlIO *PerlIO_importFILE(FILE *stdio, const char *mode);
FILE   *PerlIO_exportFILE(PerlIO *f, int flags);
FILE   *PerlIO_findFILE(PerlIO *f);
void    PerlIO_releaseFILE(PerlIO *f,FILE *stdio);

int     PerlIO_apply_layers(PerlIO *f, const char *mode, const char *layers);
int     PerlIO_binmode(PerlIO *f, int ptype, int imode, const char *layers);
void    PerlIO_debug(const char *fmt,...)

DESCRIPTION

Perl ��勉�純�若�鴻�潟�若�����������紊с�勛Щ罎���с��羆������������壔�鴻����潟�激�с�潟�с�壔�� ANSI C ��� stdio.h ��˨�������∽�違�с�壔�ŝ�鋇�荐���勰�∽�違��篏帥����鴻����с����� perl ��勉�������� (��鴻�� "perlio.h") ��� Configure ��勐��茵������̹�御�������� I/O 罘�罕���� #define �����障�����

�����������勰�∽�違�� stdio.h ��˨����������勉����≪����˨�˨�ŝ�c�⓾����障�������� ���������羝<�������í�<�若�帥�若�壔����<����c����違�������顔�������������⓾����障�����

PerlIO * ��� FILE * ��勉�������ŝ����勉�с����� FILE * ������罕���˨����������壚����������ŝ����勉�������〠�宴�������障��(���������篏������吾� �����ゃ�潟�帥�������☖皿絎���������������壔����������鎘������с��)���

�憜����勉�������� 3 ��ゃ�勐��茖������������障��:

1. USE_STDIO

筝�荐���勐����⓾�� stdio ��∽�違�吾�� #define ������stdio �����若�喝�冴����������勉�������泣����� ��í�������∽�違�с����� �����勐�翫�� ��勉�����PerlIO * ��� FILE * ��с����� ��処院������絨���ャ�������� perl5.003_02 篁ユ�ャ�������������������í�˨����勐��茖���с��������

2. USE_SFIO

"sfio" ��í�ゃ����í�ŝ�̹�≪����⓾�������㋘�㋘�激�若�ŝ��絎�茖���с����� Unix �����激�潟�с�勛�号����ŝ�≪����ŝ�宴�若�激�с�潟�т戎��������⓾����障�� ("sfio" Unix 篁ュ����˨�壔����障��腱紙����������⓾����障�����)��� 筝�荐���勉�祉�������í�� sfio ��∽�違�吾�� #define ��с����� �����勐�翫�����PerlIO * ��� Sfio_t * ��с�����

3. USE_PERLIO

���������perl5.7.0 ��勛�翫�����絨���ャ��������筝�菴違�勖�処院�����勐��絎�茖���с��; ��������˨����c� IO ��� OS ��� C ��í�ゃ����í�ŝ����î�����茵������������勰�御�������������≪����������˨�� IO �����í�勉�������̬����������������� perl �����������九勝��с�������������˨�ŝ����障����� USE_PERLIO ��с�壔��PerlIO * ��奝���・�����勤申�����勐韻��������<�障�� - ��������夌�劫嚳��鴻�с����� ��������˨��������PerlIO * ��壩�∝�ャ�勐�ゃ�勉�障�障����榊�������ŝ��絎�茖���� 絎�茵������� 篋ゆ�������������������с����障����� �����勐�翫��筝�菴違�勐����⓾�壠�榊�������ŝ��絎�茖������若�喝�冴����㋚�����(��������������⓾�����膣����) ��∽�違�с�����

��������� PerlIO_apply_layers() ���篏������������潟�����������������茵������壚���� 絎�茖���с�����

USE_PERLIO 絎�茖���˨�ゃ����⓾�� perliol ��̬��菴違�������⓾����障�����

"perlio.h" ���(��合����勉��������)������絮ゃ�˨�ŝ�c�⓾�������勉�с�������������勰�∽�違�勖����潟� ��榊�������ŝ��絎�茖���̬�ュ慌箴�絖������⓾����障����� 紊������������������������c�⓾����������������壚札筝���̬����������⓾����障�����

��鴻��羈���������ŝ�������違����∽�違�壩����������� 0 ���菴������������í�惹����˨�虁�����(��勰���� -1 ��勐�ゃ�������� EOF)���菴������� errno �����祉����������障�����

PerlIO_stdin(), PerlIO_stdout(), PerlIO_stderr()

stdin, stdout, stderr ��勌撮��������˩戎��c�⓾�������������� �����������壠����違�с�ŝ�������∽�医�若�喝�冴�������勉�������̬��菴違�������⓾����障�������� ��������壚戎��������������í����������í�若����˨�������⓾�㏍�若����≪�吾�ャ�若�˨��絲障����������若�帥� �����壔�鴻����若�������с����ŝ����c�������������������夌�違�ŝ�������鴻�㋘�������������違�ŝ����ゃ�� �����ゅ櫝�醇�с����������������c����������˨�������������� ��∽�医�若�喝�冴����˨����� ��勉�� 膂≦����˨�ŝ����������с�����

PerlIO_open(path, mode), PerlIO_fdopen(fd,mode)

fopen()/fdopen() ���絲上��������������綣���違����������障����� �����í�若�勐�翫����� NULL ���菴�������errno �����祉����������障����� ��ŝ�若����潟����������潟����˨�勖�違�˨�壠��茖���勐�狗�������������������������������������壔�ŝ�若����潟����� �����<�ゃ�˨�勖�違�勐�狗��������篏������������������障����� - �����勐�狗�����莇������� NULL ���菴����������������errno ��壔�祉�������������障��������

PerlIO_reopen(path,mode,f)

��������夌憜����勉�������� 3 ��ゅ����⓾�勐��茖����絖���������⓾����障��������perl ��ʃ昆��壔�������� 篏帥�c�⓾����障�������� perl ���篏帥�c�⓾����ŝ����勉�с����������˨����鴻����������⓾����障��������

Perl ��壠����������� PerlIO ��˨����c�☖戎��������⓾�����荐�菴医����������������違�����篏���㋘���� 荐�菴医����� dup ���������������絅純�帥�障����� ��������壠����ャ����勰�∽�違�勖�壔����������˨�ŝ����������������障��������

PerlIO_printf(f,fmt,...), PerlIO_vprintf(f,fmt,a)

fprintf()/vfprintf() ��◐��箴<�с�����

PerlIO_stdoutf(fmt,...)

��������� printf() ��◐��箴<�с����� printf ��壔����勰�∽�違��絲障����� #define �����ŝ�c�⓾����障����������� (�憝����鴻�с��) Perl ��勉�純�若�鴻�潟�若��筝㏍�� printf(fmt,...) ����������������� ���羈���с�����

PerlIO_read(f,buf,count), PerlIO_write(f,buf,count)

fread() ��������� fwrite() ���絲上��������罘���純�������<�障��������綣���違� 菴������ゃ�夌�違�ŝ����障����� PerlIO_read() ��� PerlIO_write() ��勉�激�違�������c�壔��篁c�������˨�������障������� 篏���㋘����˨�� read() ��� write() ��勰�∽�違����≪����˨�˨����⓾����障��: "file" 綣���違�壩��������羝<��������count" ��� 1 ��ゃ�������с��菴������ゃ�壔����í�若� EOF �����у�阪�ャ�с����障�����

�����������˨�壔����ゃ����˨�⓾�潟��(��若�㏍��罩c�勖�違�с��)���菴������������í�惹����˨�虁����勖�違�� 菴������� errno �����祉����������障����� 絎�茖���˩��絖������⓾�����������篏������激�違����˨�т賢��㏍�������翫����� errno ��� EINTR �� ��ŝ����������������障��������

PerlIO_close(f)

絎�茖���˨����c�⓾�壔�����篏������激�違����˨�т賢��㏍�������翫�� errno ��� EINTR �� ��ŝ�������������������障�����

PerlIO_puts(f,s), PerlIO_putc(f,c)

fputs() ��������� fputc() ���絲上�������障����� ��������勐����違�˧��file��������ャ������������������� 羈���������⓾��������������

PerlIO_ungetc(f,c)

ungetc() ���絲上�������障����� ��������勐����違�� "file" �����ャ��������������������羈���������⓾�������������� 罨<�勤˛��粋昭��炊��篏���с����ゃ�� c ���菴�������������羣���������障����� ��������� "character" ������腓冴����⓾����������勉�̹�≪�����������0..0xFF ��勛����蚊�勐�ゃ�勉�帥�� 絎�臂í�������⓾����障����� ��������˨�壔����ゃ�� c �����������í�惹����˨�� -1 (EOF) ���菴���������障����� �����若��菴������������������с����������ゃ����違�夌�違�ŝ����障��; 1 ���絖������������������勉�夌∈絎���с�� 緇���c�⓾����潟����˨�����茯㏍�粋昭���������緇���勖��絖������������������������с�����

PerlIO_getc(f)

getc() ���絲上�������障����� ��������� c �����������障�������������ゃ����勛����� 0..0xFF ��˨�勉�水嚳綽������⓾����障����� 茯㏍�粋昭���������絖������������í�若�勐�翫����� -1 (EOF) ���菴������障�����

PerlIO_eof(f)

feof() ���絲上�������障����� �����潟����˨�������<�ゃ�˨�勖��緇������í��������腓冴����������純��菴������障����� 腴壩�˨�������ゃ�鴻�с�壔��絎�茖���˩��絖������⓾����������� "sticky" ��������������障����������� ��������с�壔�ŝ����������������障�������� �����í�違�� PerlIO_seek() ��� PerlIO_rewind() ��цВ��ゃ�������障�����

PerlIO_error(f)

ferror()���絲上�������障����� �����潟����˨�� IO �����í�若�������������í�������������遵�ゃ�ц�������障�����

PerlIO_fileno(f)

fileno() ���絲上�������障����� 筝������勉����í����������í�若����˨�������⓾�壔�����fileno����� �����潟�����������������UNIX�����奝�����������������������羈���������⓾�������������� Returns -1 if the handle has no open descriptor associated with it.

PerlIO_clearerr(f)

clearerr() ���絲上�������������鴻����ŝ�若�������� 'error' ��� (��勰�����) 'eof' ��������c�� �����í�違����壔�ŝ�≪����障����� ��ゃ��菴������障��������

PerlIO_flush(f)

fflush() ���絲上�������障����� �����������<�ŝ�潟�違����������吾��莨若�帥����若�帥�������<�ゃ�˨�̹�������障����� 綣���� NULL ��у�若�喝�冴����������ŝ�若����潟����⓾����������⓾�勉�鴻����ŝ�若����� �����í����激�ャ����障��(USE_STDIO 絎�茖���˨�壔�潟�≪����潟�������������勉����������障��)��� 茯㏍�粋昭��水�������с�ŝ�若����潟����⓾��������������緇���勖��篏������ŝ����������勤˛��粋昭��帥�с����� �����潟����˨�у�若�喝�冴��������USE_STDIO 絎�茖���˨�壩�ɱ��臂í�勖�壔�������������ŝ�������勉�� ��������障����� USE_PERLIO (絮�) 絎�茖���壔�������������壔�������������������障��: NULL ���羝<���������� ��ŝ�若����潟����⓾����������⓾�勉�鴻����ŝ�若����������í����激�ャ����������������<�勌賢�������憜���� 茫����篏�臀勉�˨����潟����˨����激�若�壔�������������с��茯㏍�粋昭��帥�鴻����ŝ�若����勉����若�帥�� 膓㊥�������������������障�����

PerlIO_seek(f,offset,whence)

fseek() ���絲上�������障����� �����������<�ŝ�潟�違����������吾��莨若�帥����若�帥��絲上�������������<�ゃ�˨�̹����������� �����������<�ŝ�潟�違�����茯㏍�粋昭��帥����若�帥�������⓾�⓾�������������<�ゃ�̬��菴医����勌��臀勉�� <offset> ��� whence ��ф��絎������������贋����˨����障��(��激�若�壔����障��)��� ��������壠����������潟����˨�勤˛��粋昭��帥����吾��莨若�帥����������帥�������������˨�������鴻�� 罩c�������������с��(筝�菴違�� PerlIO_flush() ��勐�馹���������с����⓾�����������)��� offset ��� perl ��� Configure ��ゃ�с����� Off_t �����с��stdio ��� off_t ����� ��違�ŝ����������������障��������

PerlIO_tell(f)

ftell() ���絲上�������障����� �憜����勉����<�ゃ�˩��臀勉����������í�若�勐�翫����� (Off_t) -1 ���菴���������障����� ��激�鴻�������潟�若�˨�������榊�������ŝ�������<�ゃ�̬��菴医����勉����с����壔�ŝ����˨����激�鴻�������� �����ャ�c�⓾����������ゃ��菴������������������障�������� (緇���c�⓾����掩�������<�ゃ�̬��菴医����с�勌戎�����壔��PerlIO_seek() ��ŝ����с� 絎������с�壔�������障�����)��� 菴������ゃ�� perl ��� Configure ��ゃ�с����� Off_t �����с��stdio ��� off_t ����� ��違�ŝ����������������障��������

PerlIO_getpos(f,p), PerlIO_setpos(f,p)

������������ (紊с�障�����) ftgetpos() ��� fsetpos() ���絲上�������障����� stdio ���Fpos_t ��◒����c�⓾�������������壔��Perl ��鴻�˨�ï�ゃ�����羝<����������������� ��喝�������⓾����障����� ��������т��絖���������������勉�壠��������荀������ŝ�������勉����帥�ŝ�������障����� �����若�帥�勉�㋘�ゃ�≪�⓾����壔����潟����˨�˨����c�⓾����障����障�с����� stdio ���篏帥����ŝ����翫�������������í����������í�若����� stdio ��若�喝�冴����������c�⓾����ŝ�� ��翫����˨�壔����������勰�∽�違�� PerlIO_tell()���PerlIO_seek() ��˨����c�☗��茖���������障�����

PerlIO_rewind(f)

rewind() ���絲上�������障����� ��������壩�勰��篁ヤ����勉��������絎�臂í�������⓾����障��:

PerlIO_seek(f,(Off_t)0L, SEEK_SET);
PerlIO_clearerr(f);
PerlIO_tmpfile()

tmpfile() ���絲上����������≦�� PerlIO (�����í�惹����� NULL) ���菴������障����� ��激�鴻�������壔����<�ゃ�˨����壔�㏍�若�冴����������◑�ɱ�������˨����<�ゃ�˨�������ゃ����������������障����� Unix ��с�壔�������<�ゃ�˨�壩�勰��篏���������������翫����� unlink �����������勉�с����í�������c� ��壔�㏍�若�冴�������������壩����˨�������障�������� �����勌����勉�激�鴻�������с�壔�������<�ゃ�˨�� PerlIO_close() ��ч�������������������������㏍�違�í����� exit ��х��篋������������������˨�勉�水����ゃ�������障����� 絎�茖���˩��絖������⓾��篁���勉����㏍�祉�鴻�������勉����<�ゃ�˨�˨�≪�壔�祉�鴻�с�������������� ���腴九����>散������莎激����������障��������筝���㋜����˨�壔����勐�顔�������勌��腟���帥�������������勖�鴻�� ������絎������с�����������

PerlIO_setlinebuf(f)

��������� setlinebuf() ���絲上�������障����� ��ゃ��菴������障�������� 篏�������茵�������罕���������������壠��茖�箴�絖���с����������勰����� "\n" �����吾����������������<�� �����í����激�ャ����障����� "this\nthat" ��勉�������ŝ����勉��絲障����☖�����莎激����������壚�����腆冴�с����� (Perl core ��� "dumping" ��� $| ��勤�ɱ�������í����激�ャ� ��≫�������⓾����ŝ�� ��������˨�勉�� ���������篏帥����障��)���

Co-existence with stdio

(stdio �����勐�怨��)

PerlIO ��� stdio �����勐�怨�������泣����若����������������勉�≪�⓾����í�ゃ�潟����������障����� PerlIO ��� stdio ���篏帥�c�☗��茖���������⓾�������勉�с�������違����������������馹���壔�������障�������� �����������������勌����勐�翫����с�� stdio ��若�喝�冴�����篏帥����������������í�ゃ����í�ŝ�潟�若���� 羝<�������������с����� FILE * ���篏����������罘�罕������ŝ�������違�ŝ����障��������

��������勉�鴻����������壚札筝���勤�����菴遵����������������с��:

#define PERLIO_NOT_STDIO 0

������������ perl ��������������<�ゃ�˨����ゃ�潟�壔�˨�若�������� ��� ��̬�������障����� (��������壔����������������������鴻�с�������í�˨����˨�ŝ����障�����) ��������˨����� "perlio.h" ��� stdio ��� PerlIO ��∽�違�� #define ��������������������勉�� 絋������障�����

XS ��潟�若����壔�������� FILE * 綣���違����喝�������⓾�������ŝ�����������������"typemap" ��� 篏帥�c����祉�������������с����������� 罔�羣���� typemap ��壔�������勐�������с�勉�����������紊���眼������偗�������������̬Ě��眼�������障�����

PerlIO_importFILE(f,mode)

FILE * ������ PerlIO * ���緇������勉�˩戎�����障�����

mode 綣���違�� fopen/PerlIO_open ���羝<�����������絖������с�������鴻����с����� ��������������� NULL ��ŝ�� - ��㋘�㋘�激�若�泣����若����勉�������� - ��潟�若���� (�����í����������í�若�����絎�茖���˩��絖�������) f �����ŝ�若����潟����������≪�若�����腟�薑������ 羆阪��������������������������茯㏍�炊�吾����鴻����ŝ�若�����腓冴����������� "r+" ���篏帥�������障�����

筝�綺☗�若�喝�冴�������������������� FILE * ��虁����������� PerlIO * ��� PerlIO_close() ��� ��若�喝�冴����������˨����c�� ��勉�� ��壔�㏍�若�冴����������鴻����с�����

PerlIO ��壔����㏍�鴻����≪�若����˨�祉�������������障����� ���������絽���������⓾�������≪�若����с�ŝ����翫����壔��PerlIO_binmode ���篏帥����障�����

��������� PerlIO_exportFILE() ��勰�� ��с�壔�������障����� ���

PerlIO_exportFILE(f,mode)

PerlIO * ������������ANSI C ��� stdio.h �����宴�˨�潟�潟����ゃ�˨����������ŝ�潟�壔�������� �����������喝�������������潟�若�����羝<����勉�̹�í�������������ゃ����c�������� FILE * 罕����篏���� 篏���������障����� mode 綣���違�� fopen/PerlIO_open ���羝<�����������絖������с����� ��������� NULL ��勐�翫����� - ��㋘�㋘�激�弱嚳綽���勉�������� - FILE * ��� PerlIO * ��������� ��≪�若����с�ŝ�若����潟����障�����

���export������������ FILE * ���(���絽吾�壩�違����� :stdio ���絮ゃ����� PerlIO * �� ��������激�ャ��������������)荐���蚊��������������篁ュ����勉�ŝ�ŝ�吾����˨�� PerlIO * ���絲障����� PerlIO ���篏����綵演�帥�������若���櫝�醇�с����������障����� PerlIO * �����勰�∫�d��������茹i�ゃ�������������� PerlIO_releaseFILE() ��� ��若�喝�冴�������� fclose() �����若�喝�冴����鴻����с�壔�������障�������� (��∫�d�������勤В��ゃ�勉�������� PerlIO_importFILE() ���篏帥�c�⓾�壔�������障��������)

�����勰�∽�違��茲���医����若�喝�冴����������若�喝�冴��罸���� FILE * ���篏���������障��(�������� 罸���� :stdio 絮ゃ�˨�������激�ャ����障��)���

PerlIO_releaseFILE(p,f)

PerlIO_releaseFILE ��壔��PerlIO ��˨����鴻�⓾��FILE * ��勌戎������絎�篋���������������� ��ャ�������障����� 絎�篋������������勉�壎��export������������ FILE * ��勉�ŝ�鴻�������������ゃ�������障����� ��������⓾����������̥����割�������������⓾����� PerlIO * ��壠�������勖�壔�������������祉����障�����

PerlIO_exportFILE() ���篏帥�c�� PerlIO * ��̥����割�������������������<�ゃ�˨�� �����≪�������������˨��������篏帥����障�����

PerlIO_findFILE(f)

stdio 絮ゃ�т戎��������������ゃ����c����� FILE * ���菴������障����� �����������������ŝ�������違��PerlIO_exportFILE ���篏帥�c�☖�������������障����� ��í�<����勐�翫����с�����FILE * ��� PerlIO ��泣����激�鴻��������緇������◑�������������� PerlIO_close() �����若�喝�冴����������˨����c�⓾�勉�帥�壔�㏍�若�冴����������鴻����с�����

"Fast gets" Functions

("Fast gets" ��∽��)

筝�菴違�����罔�羣�蘂���� API �����������⓾��perl ��� PerlIO ��勐�������ф�宴����������� ��с�������������˨��������絎�茖������ゃ�潟�帥�若����с�若�鴻����������障����� 篁ヤ����������������若�喝�冴����壔�������������� Configure (�����������壔����勌����勐��茖���с� ��������◐��箴<�ŝ�����) ��у��臂í�������� FILE_xxx �����壔�㏍��絲上�������⓾����障����� �����勉�祉�壔�激�с�潟�с�壔��perl-core ��勖�壔����������勤¼膣違��PerlIO ��勉����������潟�違�勐��茖���� ��障�� perl �����������������号����� IO ��激�鴻�������˨����c�☀����������⓾����� ������茵�茯㏍�粋昭��帥�����篏帥�������������ŝ�潟�若�������吾����������˨�ゃ����⓾�勉�炊絵��勉����障����� �����������勉�ゃ�潟�帥�若����с�若�鴻��篏帥����潟�若����壔�������������潟����˨������������� 絲上�������⓾����ŝ����ŝ�����篌�腟援����ʋ�号����ф����������⓾����鏆�荀������������������ 羈���������⓾��������������

PerlIO_fast_gets(f)

������絎�茖�������絽吾�� IO 罘�罕������������帥����������������� perl ��� sv_gets ��� 篏帥�������������̬��羆���������������⓾�勉�ゃ�潟�帥�若����с�若�鴻�������c�⓾�������ŝ��������菴������障����� ��������壔����潟����˨�˨����c�☎�違�ŝ���櫝�醇�с����������障�����

PerlIO_fast_gets(f) = PerlIO_has_cntptr(f) && \
                      PerlIO_canset_cnt(f) && \
                      `Can set pointer into buffer'
PerlIO_has_cntptr(f)

��������������≠��筝㏍�勉�˨�㋘�潟�������吾�激�с�潟�吾�勉����ゃ�潟�帥�若�������������<�˨����� �����ゃ����違��菴������������勉�с�����絎�茖���с����� ���������篏帥����ŝ����с����������� - PerlIO_fast_gets ���篏帥�c�⓾��������������

PerlIO_get_cnt(f)

�����������>賢��勤˛��水�冴����������勉�с����������ゃ����違��菴������障����� 0 ���莢���違��菴����������������茯㏍�水�冴����ŝ����������������潟����障�����

PerlIO_get_ptr(f)

�����������>賢��˨�����罨<�勤˛��水�冴���櫝�純����ゃ����吾�勉����ゃ�潟�帥�若��菴������障��; �����ゃ�潟�睡����宴�勉�≪�壔�祉��(�����ŝ����<�㋘�潟��)��壔��PerlIO_get_cnt() ��� 罩c�勖�違��菴���������翫����˨�勉�水�������с����� PerlIO_get_cnt() ��ц�������������や札筝���勖③��勖�違�勉�ŝ����祉�������勉�帥��篏帥����障�����

PerlIO_set_ptrcnt(f,p,c)

�����ゃ�潟�帥�若�������������<�˨�祉����������������������<�˨����������ゃ����違�壔����勉�障�障�с����� 篁ュ����� PerlIO_get_ptr ��� PerlIO_get_cnt ��勐�若�喝�冴�������� �ィ羝㋘��������膀���峨����勉����ゃ�潟�帥�若����祉�������������������勉�帥�˩戎�����鴻����с����������� 2 ��ゃ�勐�ゃ�壚�������� 筝�莢˨����⓾����ŝ�������違�ŝ����障����� (絎�茖���壔�í�<����������鴻��������篏帥����������������障�����������筝≧�鴻��綽�荀���������������障�����)���

PerlIO_canset_cnt(f)

�����������<�˨����������ゃ����違��茯炊�眼�������������勉�с�����絎�茖���с����� ��������壚戎�����ŝ����с����������� - PerlIO_fast_gets ���篏帥�c�⓾��������������

PerlIO_set_cnt(f,c)

筝������� - �����������<�˨����������ゃ����違����祉����������障����� ����ィ絅���с����� PerlIO_canset_cnt() ��夌�����菴������翫����˨�勉�水�ñ����с����障����� �憜����������壔��doio.c ��с�勉�� -1 ��ʋ����� count ��� 綣桁�句����� -1 ��˨������������� 篏帥�������⓾����障����� ������������ PerlIO_set_empty �����������̹�������������勉����������鴻����с����������� �����勐�若�喝�冴����壔�����count�����������ゃ�潟�帥�若�����limit���������絨������冴����������翫����˨� 絎������˨�壔�ŝ�˨�������障�������� ��������壚戎�����ŝ����с����������� - PerlIO_set_ptrcnt() ���篏帥�c�⓾��������������

PerlIO_has_base(f)

絎�茖���������������<�������c�⓾����⓾�������������≦��篏���吾�勉����ゃ�潟�帥�若�������勐ぇ��������� 菴���������������с�������ŝ��������菴������障����� -T/-B �����鴻����勉�������� perl ��˨����c�☖戎��������障����� �����勉�祉����勉����勉�奝��絽吾�˨�壔�c����������ŝ��綵≪�т戎��������障����

PerlIO_get_base(f)

�����������<�� ���紮�篏�臀� ���菴������障����� �����������<�勌賢��с��PerlIO_get_bufsiz() ��ц�������������や札筝���勖③��違�勉�ŝ����祉������� ��勉�帥�≪�壔�祉�鴻�с����障�����

PerlIO_get_bufsiz(f)

�����������<�� ���荐������ゃ����� ���菴������障��; ��������虁˛��粋昭��水櫝�純�ʋ�違����������������<����蚊��綵���⓾����������<�≪�ʒ����с�壔�������障�������� ���������������緇���� I/O ���荀�羆������������������� OS ��� 絎�茖���� read() (����������� �����勉�������ŝ�����) ���茵���c�������勉�с�����

Other Functions

(�����勌����勰�∽��)

PerlIO_apply_layers(f,mode,layers)

USE_PERLIO 絎�茖���吾�勖�違�������ゃ�潟�帥�若����с�若�鴻�с����� ":crlf" ��� ":raw" ��勐韻��壔����勌����勐��茖���с�壚����ゃ��������荐怨檽�������������������壩��藥��� ��∴����������障����� (perl5.8 ���������":raw" ��奝���ィ絅���с�����) 腱紙����с����馹���˨�ŝ����翫����壠��菴違����� PerlIO_binmode() ���篏帥�c�⓾��������������

PerlIO_binmode(f,ptype,imode,layers)

perl ��� binmode 羲�膊�絖���т戎�����������������壔�с����� ptype ��壠�ュ�阪����勛┏蕁����腓冴�� perl ��勖��絖���с��:

'<' read
'>' write
'+' read/write

imode ��� O_BINARY ��� O_TEXT �����

layers ��奝�ñ�����������絮ゃ�勖��絖������с��USE_PERLIO 篁ュ����勐�翫����с�� ":crlf" ��勉�帥�� �����潟�������<�障����� (perl5.8 篁ラ�����":raw" ��奝���ィ絅���с��NULL ���羝<�����������絅純�障����障�����)

腱紙����с�勉�������翫�����:

PerlIO_binmode(f,ptype,O_BINARY,NULL);
and
PerlIO_binmode(f,ptype,O_TEXT,":crlf");

Unix ��с�壔����������勐�若�喝�冴����壔����������鋎���勐�号�������������障�������� ������篁ュ����с�� "\n" ��� CR,LF ���紊������������劫�ャ�ŝ����㏍�鴻����������<�ゃ�̥��腴壔�����腓阪����� 茯㏍�炊�吾�������˩戎�����障����� �����潟����˨��絲障����� I/O ���茵���c��緇������若�喝�冴�������翫����勐�号����壠��茖���˩��絖������障����� (��∴�������������������������障�������������≪�˨����������<����ャ�c�⓾����������若�帥�˨�� ��ñ�������������������������障�����������篁ュ����勉����若�帥�˨�������ñ�������������������������障��������)

PerlIO_debug(fmt,...)

PerlIO_debug ��壔�������������違�˩戎������ printf() 蘂���勰�∽�違�с����� 菴������ゃ�壔�������障�������� 筝祉�ɾ�◒����壔��絎� printf, warn() ��ŝ�í��篏帥�c�⓾����� PerlIO ��勐�������с��PerlIO �� ���絽医�若�喝�冴�������馹���˨�ŝ����������ŝ����������с�����

PerlIO_debug ��� $ENV{'PERLIO_DEBUG'} ��ф��絎���������������<�ゃ�˨����吾��莨若�帥�障����� ��後�������ŭ戎�����鴻��:

Bourne shells (sh, ksh, bash, zsh, ash, ...):
 PERLIO_DEBUG=/dev/tty ./perl somescript some args

Csh/Tcsh:
 setenv PERLIO_DEBUG /dev/tty
 ./perl somescript some args

If you have the "env" utility:
 env PERLIO_DEBUG=/dev/tty ./perl somescript some args

Win32:
 set PERLIO_DEBUG=CON
 perl somescript some args

$ENV{'PERLIO_DEBUG'} �����祉�������������⓾����ŝ����翫����� PerlIO_debug() �� 篏���������障��������