| version 1.6, 2001/03/12 05:01:18 |
version 1.12, 2003/11/01 23:58:44 |
|
|
| @comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/io.texi,v 1.5 2000/11/13 00:16:36 noro Exp $ |
@comment $OpenXM: OpenXM/src/asir-doc/parts/builtin/io.texi,v 1.11 2003/04/20 08:01:28 noro Exp $ |
| \BJP |
\BJP |
| @node $BF~=PNO(B,,, $BAH$_9~$_H!?t(B |
@node $BF~=PNO(B,,, $BAH$_9~$_H!?t(B |
| @section $BF~=PNO(B |
@section $BF~=PNO(B |
| Line 96 line of the input file is strongly recommended. |
|
| Line 96 line of the input file is strongly recommended. |
|
| @itemize @bullet |
@itemize @bullet |
| \BJP |
\BJP |
| @item |
@item |
| $B<B:]$N%W%m%0%i%`$N=q$-J}$O(B, @xref{$B%f!<%68@8l(B Asir}. |
$B<B:]$N%W%m%0%i%`$N=q$-J}$O(B, @pxref{$B%f!<%68@8l(B Asir}. |
| $B%F%-%9%H%U%!%$%k$rFI$_9~$`>l9g(B, @code{cpp} |
$B%F%-%9%H%U%!%$%k$rFI$_9~$`>l9g(B, @code{cpp} |
| $B$rDL$9$N$G(B, C $B$N%W%m%0%i%`F1MM(B @code{#include}, @code{#define} $B$r;H$&$3$H$,$G$-$k(B. |
$B$rDL$9$N$G(B, C $B$N%W%m%0%i%`F1MM(B @code{#include}, @code{#define} $B$r;H$&$3$H$,$G$-$k(B. |
| @item |
@item |
| Line 121 Windows $BHG$b%G%#%l%/%H%j$N%;%Q%l!<%?$H$7$F(B @samp |
|
| Line 121 Windows $BHG$b%G%#%l%/%H%j$N%;%Q%l!<%?$H$7$F(B @samp |
|
| \E |
\E |
| \BEG |
\BEG |
| @item |
@item |
| @xref{User language Asir} for practical programming. |
See @ref{User language Asir} for practical programming. |
| Since text files are read through @code{cpp}, |
Since text files are read through @code{cpp}, |
| the user can use, as in C programs, @code{#include} and @code{#define} |
the user can use, as in C programs, @code{#include} and @code{#define} |
| in @b{Asir} program source codes. |
in @b{Asir} program source codes. |
| Line 140 On Windows, @code{get_rootdir()/lib} is searched if |
|
| Line 140 On Windows, @code{get_rootdir()/lib} is searched if |
|
| We recommend to write an @code{end} command at the last line of |
We recommend to write an @code{end} command at the last line of |
| your program. If not, @b{Asir} will not give you a prompt after it |
your program. If not, @b{Asir} will not give you a prompt after it |
| will have executed @code{load} command. |
will have executed @code{load} command. |
| (Escape with an interrupt character (@pxref{Interruption}), |
(Escape with an interrupt character (@ref{Interruption}), |
| if you have lost yourself.) |
if you have lost yourself.) |
| Even in such a situation, |
Even in such a situation, |
| @b{Asir} itself is still ready to read keyboard inputs as usual. |
@b{Asir} itself is still ready to read keyboard inputs as usual. |
| Line 521 The last 0 will not be printed. ) |
|
| Line 521 The last 0 will not be printed. ) |
|
| @item |
@item |
| Formatted outputs are not currently supported. |
Formatted outputs are not currently supported. |
| If one wishes to output multiple objects by a single @code{print()} command, |
If one wishes to output multiple objects by a single @code{print()} command, |
| use list like @code{[@var{obj1,...}]}, which is not so beautiful, but |
use list like @code{[@var{obj1},...]}, which is not so beautiful, but |
| convenient to minimize programming efforts. |
convenient to minimize programming efforts. |
| \E |
\E |
| @end itemize |
@end itemize |
| |
|
| @example |
@example |
| [8] def cat(L) @{ while ( L != [] ) @{ print(car(L),0); L = cdr(L);@} print(""); @} |
[8] def cat(L) @{ while ( L != [] ) @{ print(car(L),0); L = cdr(L);@} |
| |
print(""); @} |
| [9] cat([xyz,123,"gahaha"])$ |
[9] cat([xyz,123,"gahaha"])$ |
| xyz123gahaha |
xyz123gahaha |
| @end example |
@end example |
|
|
| @item get_byte(@var{num}) |
@item get_byte(@var{num}) |
| \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$+$i(B 1 $B%P%$%HFI$`(B. |
\JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$+$i(B 1 $B%P%$%HFI$`(B. |
| \EG :: Reads a byte from the file indicated by a descriptor @var{num}. |
\EG :: Reads a byte from the file indicated by a descriptor @var{num}. |
| @item put_byte(@var{num}) |
@item put_byte(@var{num},@var{c}) |
| \JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$K(B 1 $B%P%$%H=q$/(B. |
\JP :: $B<1JL;R(B @var{num} $B$N%U%!%$%k$K(B 1 $B%P%$%H(B @var{c} $B$r=q$/(B. |
| \EG :: Writes a byte to the file indicated by a descriptor @var{num}. |
\EG :: Writes a byte @var{c} to the file indicated by a descriptor @var{num}. |
| @item purge_stdin() |
@item purge_stdin() |
| @item purge_stdin() |
@item purge_stdin() |
| \JP :: $BI8=`F~NO$N%P%C%U%!$r%/%j%"$9$k(B. |
\JP :: $BI8=`F~NO$N%P%C%U%!$r%/%j%"$9$k(B. |
|
|
| $BMQ$N>l9g(B @code{"w"}, $BKvHxDI2C$N>l9g(B @code{"a"} $B$J$I(B. |
$BMQ$N>l9g(B @code{"w"}, $BKvHxDI2C$N>l9g(B @code{"a"} $B$J$I(B. |
| $B@.8y$7$?>l9g(B, $B%U%!%$%k<1JL;R$H$7$FHsIi@0?t$rJV$9(B. $B<:GT$N>l9g%(%i!<$H$J$k(B. |
$B@.8y$7$?>l9g(B, $B%U%!%$%k<1JL;R$H$7$FHsIi@0?t$rJV$9(B. $B<:GT$N>l9g%(%i!<$H$J$k(B. |
| $BITMW$K$J$C$?%U%!%$%k$O(B @code{close_file()} $B$G%/%m!<%:$9$k(B. |
$BITMW$K$J$C$?%U%!%$%k$O(B @code{close_file()} $B$G%/%m!<%:$9$k(B. |
| |
$BFCJL$J%U%!%$%kL>(B unix://stdin, unix://stdout, unix://stderr $B$rM?$($k$H(B |
| |
$B$=$l$>$lI8=`F~NO(B, $BI8=`=PNO(B, $BI8=`%(%i!<=PNO$r%*!<%W%s$9$k(B. |
| |
$B$3$N>l9g%b!<%I;XDj$OL5;k$5$l$k(B. |
| @item @code{get_line()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$+$i(B 1 $B9TFI$_(B, |
@item @code{get_line()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$+$i(B 1 $B9TFI$_(B, |
| $BJ8;zNs$H$7$FJV$9(B. $B0z?t$,$J$$>l9g(B, $BI8=`F~NO$+$i(B 1 $B9TFI$`(B. |
$BJ8;zNs$H$7$FJV$9(B. $B0z?t$,$J$$>l9g(B, $BI8=`F~NO$+$i(B 1 $B9TFI$`(B. |
| @item @code{get_byte()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$+$i(B 1 $B%P%$%HFI$_(B |
@item @code{get_byte()} $B$O8=:_%*!<%W%s$7$F$$$k%U%!%$%k$+$i(B 1 $B%P%$%HFI$_(B |
|
|
| @item @code{open_file()} opens a file. |
@item @code{open_file()} opens a file. |
| If @var{mode} is not specified, a file is opened for reading. |
If @var{mode} is not specified, a file is opened for reading. |
| If @var{mode} is specified, it is used as the mode specification for |
If @var{mode} is specified, it is used as the mode specification for |
| C standard I/O function {\tt fopen()}. For example @code{"w"} requests |
C standard I/O function @code{fopen()}. For example @code{"w"} requests |
| that the file is truncated to zero length or created for writing. |
that the file is truncated to zero length or created for writing. |
| @code{"a"} requests that the file is opened for writing or created |
@code{"a"} requests that the file is opened for writing or created |
| if it does not exist. |
if it does not exist. |
| Line 614 The stream pointer is set at the end of the file. |
|
| Line 618 The stream pointer is set at the end of the file. |
|
| If successful, it returns a non-negative integer as the file descriptor. |
If successful, it returns a non-negative integer as the file descriptor. |
| Otherwise the system error function is called. |
Otherwise the system error function is called. |
| Unnecessary files should be closed by @code{close_file()}. |
Unnecessary files should be closed by @code{close_file()}. |
| |
If the special file name unix://stdin or unix://stdout or unix://stderr |
| |
is given, it returns the file descriptor for the standard input or |
| |
the standard output or the standard error stream respectively. |
| |
The mode argument is ignored in this case. |
| @item @code{get_line()} reads a line from an opened file and returns the |
@item @code{get_line()} reads a line from an opened file and returns the |
| line as a string. If no argument is supplied, it reads a line from the |
line as a string. If no argument is supplied, it reads a line from the |
| standard input. |
standard input. |