658 lines
50 KiB
HTML
658 lines
50 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!-- Created by GNU Texinfo 7.0.3, https://www.gnu.org/software/texinfo/ -->
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<title>Streams (ECL Manual)</title>
|
|
|
|
<meta name="description" content="Streams (ECL Manual)">
|
|
<meta name="keywords" content="Streams (ECL Manual)">
|
|
<meta name="resource-type" content="document">
|
|
<meta name="distribution" content="global">
|
|
<meta name="Generator" content="makeinfo">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<link href="index.html" rel="start" title="Top">
|
|
<link href="Indexes.html" rel="index" title="Indexes">
|
|
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
|
|
<link href="Standards.html" rel="up" title="Standards">
|
|
<link href="Printer.html" rel="next" title="Printer">
|
|
<link href="Files.html#Files" rel="prev" title="Files">
|
|
<style type="text/css">
|
|
<!--
|
|
/* colors */
|
|
|
|
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
|
|
div.example {margin-left: 3.2em}
|
|
span.r {font-family: initial; font-weight: normal; font-style: normal}
|
|
span:hover a.copiable-link {visibility: visible}
|
|
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
|
|
@media (prefers-color-scheme: dark) {
|
|
/* dark theme */
|
|
html { color: seashell;
|
|
background: #1A1A1A; }
|
|
body { background: #1A1A1A; }
|
|
th { border-bottom: 2px solid lightgray; }
|
|
h1, h2, h3, h4, h5 { background-image: linear-gradient(to left, #202020, #3A3A3A); }
|
|
code, var, code a { color: darkorange;
|
|
background: #2A2A2A; }
|
|
a { color: seashell; }
|
|
pre { background: #2A2A2A;
|
|
color: seashell;
|
|
/* mark longer code block with stripe on the left */
|
|
border-left: 5px solid darkorange;
|
|
padding-left: 10px; }
|
|
pre.screen { background: #2A2A2A;
|
|
border: 1px solid lightgray; }
|
|
pre.programlisting { background: #2A2A2A;
|
|
border-left: 1px solid lightgray;
|
|
border-top: 1px solid lightgray; }
|
|
/* we need a light background in order for the images to be readable */
|
|
img { background: white }
|
|
}
|
|
@media (prefers-color-scheme: light) {
|
|
/* light theme */
|
|
html { background: white }
|
|
body { background: white }
|
|
th { border-bottom: 2px solid gray; }
|
|
h1, h2, h3, h4, h5 { background: lightgray; }
|
|
code, var, code a { color: darkred;
|
|
background: whitesmoke; }
|
|
a { color: #000; }
|
|
pre { background: whitesmoke;
|
|
color: black;
|
|
/* mark longer code block with stripe on the left */
|
|
border-left: 5px solid darkred;
|
|
padding-left: 10px; }
|
|
pre.screen { background: #EEE;
|
|
border: 1px solid black; }
|
|
pre.programlisting { background: #EEEEEE;
|
|
border-left: 1px solid black;
|
|
border-top: 1px solid black; }
|
|
}
|
|
|
|
body {
|
|
margin: 1em 125px 0 10%;
|
|
line-height: 1.5em;
|
|
padding: 0 2em 1em 2em;
|
|
font: 13px Verdana,Arial, sans-serif
|
|
}
|
|
ul, dd, dl, dt { margin-top: 0; margin-bottom: 0; }
|
|
p, code, td, dl, dt {
|
|
line-height: 1.5em;
|
|
}
|
|
table {
|
|
font: inherit;
|
|
border-collapse: collapse;
|
|
}
|
|
th, td {
|
|
vertical-align: top;
|
|
}
|
|
h1, h2, h3 { padding-left: 15px; }
|
|
h4, h5 { padding-left: 5px; }
|
|
code, pre {
|
|
font-size: 1em;
|
|
font-family: monospace;
|
|
}
|
|
var {
|
|
font-size: 1em;
|
|
}
|
|
/* links inside code appear the same as the code itself */
|
|
code a {
|
|
font-weight: normal;
|
|
text-decoration: none;
|
|
}
|
|
/* but get an underline when hovering */
|
|
code a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
/* ordinary links appear in bold */
|
|
a { font-weight: bold; }
|
|
pre.verbatim {
|
|
margin: 0 0 0 0;
|
|
}
|
|
pre {
|
|
overflow: auto;
|
|
}
|
|
pre.screen {
|
|
font-weight: bold;
|
|
padding: 0.5em;
|
|
}
|
|
pre.programlisting {
|
|
padding: 0.5em;
|
|
}
|
|
div p { padding: 0 2em }
|
|
li p { padding: 0; margin: 0 }
|
|
hr { display: none; }
|
|
div.funcsynopsis p {
|
|
text-indent: -2em;
|
|
}
|
|
div.variablelist {
|
|
padding: 0 2em;
|
|
}
|
|
.type, .funcsynopsis, .symbol {
|
|
font-family: monospace;
|
|
}
|
|
.type, .symbol, .replaceable {
|
|
white-space: nowrap;
|
|
}
|
|
|
|
-->
|
|
</style>
|
|
|
|
|
|
</head>
|
|
|
|
<body lang="en">
|
|
<div class="section-level-extent" id="Streams">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="Printer.html" accesskey="n" rel="next">Printer</a>, Previous: <a href="Files.html#Files" accesskey="p" rel="prev">Files</a>, Up: <a href="Standards.html" accesskey="u" rel="up">Standards</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h3 class="section" id="Streams-1">2.19 Streams</h3>
|
|
|
|
|
|
<ul class="mini-toc">
|
|
<li><a href="Streams.html#Streams-_002d-ANSI-Streams" accesskey="1">ANSI Streams</a></li>
|
|
<li><a href="Streams.html#Streams-_002d-Dictionary" accesskey="2">Dictionary</a></li>
|
|
<li><a href="Streams.html#Streams-_002d-C-Reference" accesskey="3">C Reference</a></li>
|
|
</ul>
|
|
<hr>
|
|
<div class="subsection-level-extent" id="Streams-_002d-ANSI-Streams">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="Streams.html#Streams-_002d-Dictionary" accesskey="n" rel="next">Dictionary</a>, Up: <a href="Streams.html#Streams" accesskey="u" rel="up">Streams</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h4 class="subsection" id="ANSI-Streams">2.19.1 ANSI Streams</h4>
|
|
|
|
|
|
<ul class="mini-toc">
|
|
<li><a href="Streams.html#Streams-_002d-Supported-types" accesskey="1">Supported types</a></li>
|
|
<li><a href="Streams.html#Streams-_002d-Element-types" accesskey="2">Element types</a></li>
|
|
<li><a href="Streams.html#Streams-_002d-External-formats" accesskey="3">External formats</a></li>
|
|
</ul>
|
|
<hr>
|
|
<div class="subsubsection-level-extent" id="Streams-_002d-Supported-types">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="Streams.html#Streams-_002d-Element-types" accesskey="n" rel="next">Element types</a>, Up: <a href="Streams.html#Streams-_002d-ANSI-Streams" accesskey="u" rel="up">ANSI Streams</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h4 class="subsubsection" id="Supported-types">2.19.1.1 Supported types</h4>
|
|
<p>ECL implements all stream types described in ANSI [see <a class="pxref" href="Bibliography.html">ANSI</a>]. Additionally, when configured with option <code class="code">--enable-clos-streams</code>, ECL includes a version of Gray streams where any object that implements the appropriate methods (<code class="code">stream-input-p</code>, <code class="code">stream-read-char</code>, etc) is a valid argument for the functions that expect streams, such as <code class="code">read</code>, <code class="code">print</code>, etc.
|
|
</p>
|
|
<hr>
|
|
</div>
|
|
<div class="subsubsection-level-extent" id="Streams-_002d-Element-types">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="Streams.html#Streams-_002d-External-formats" accesskey="n" rel="next">External formats</a>, Previous: <a href="Streams.html#Streams-_002d-Supported-types" accesskey="p" rel="prev">Supported types</a>, Up: <a href="Streams.html#Streams-_002d-ANSI-Streams" accesskey="u" rel="up">ANSI Streams</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h4 class="subsubsection" id="Element-types">2.19.1.2 Element types</h4>
|
|
<a class="index-entry-id" id="index-write_002dchar"></a>
|
|
<a class="index-entry-id" id="index-write_002dsequence"></a>
|
|
<a class="index-entry-id" id="index-read_002dchar"></a>
|
|
<p>ECL distinguishes between two kinds of streams: character streams and byte streams. <em class="dfn">Character streams</em> only accept and produce characters, written or read one by one, with <code class="code">write-char</code> or <code class="code">read-char</code>, or in chunks, with <code class="code">write-sequence</code> or any of the Lisp printer functions. Character operations are conditioned by the external format, as described in <a class="ref" href="Streams.html#Streams-_002d-External-formats">External formats</a>.
|
|
</p>
|
|
<p>ANSI Common Lisp also supports binary streams. Here input and output is performed in chunks of bits. Binary streams are created with the function open passing as argument a subtype of integer and the implementation is free to round up that integer type to the closest size it supports. In particular ECL rounds up the size to a multiple of a byte. For example, the form <code class="code">(open "foo.bin" :direction :output :element-type '(unsigned-byte 13))</code>, will open the file <code class="code">foo.bin</code> for writing, using 16-bit words as the element type.
|
|
</p>
|
|
|
|
<hr>
|
|
</div>
|
|
<div class="subsubsection-level-extent" id="Streams-_002d-External-formats">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Previous: <a href="Streams.html#Streams-_002d-Element-types" accesskey="p" rel="prev">Element types</a>, Up: <a href="Streams.html#Streams-_002d-ANSI-Streams" accesskey="u" rel="up">ANSI Streams</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h4 class="subsubsection" id="External-formats">2.19.1.3 External formats</h4>
|
|
<p>An <em class="dfn">external format</em> is an encoding for characters that maps character codes to a sequence of bytes, in a one-to-one or one-to-many fashion. External formats are also known as "character encodings" in the programming world and are an essential ingredient to be able to read and write text in different languages and alphabets.
|
|
</p>
|
|
<p>ECL has one of the most complete supports for <em class="emph">external formats</em>, covering all of the usual codepages from the Windows and Unix world, up to the more recent UTF-8, UCS-2 and UCS-4 formats, all of them with big and small endian variants, and considering different encodings for the newline character.
|
|
</p>
|
|
<p>However, the set of supported external formats depends on the size of the space of character codes. When ECL is built with Unicode support (the default option), it can represent all known characters from all known codepages, and thus all external formats are supported. However, when ECL is built with the restricted character set, it can only use one codepage (the one provided by the C library), with a few variants for the representation of end-of-line characters.
|
|
</p>
|
|
<p>In ECL, an external format designator is defined recursively as either a symbol or a list of symbols. The grammar is as follows
|
|
</p>
|
|
<pre class="verbatim">external-format-designator :=
|
|
symbol |
|
|
( {symbol}+ )
|
|
</pre>
|
|
<p>and the table of known symbols is shown below. Note how some symbols (<code class="code">:cr</code>, <code class="code">:little-endian</code>, etc.) just modify other external formats.
|
|
</p>
|
|
<div class="float" id="tab_003astream_002dext_002dformats">
|
|
|
|
<table class="multitable">
|
|
<thead><tr><th width="40%">Symbols</th><th width="40%">Codepage or encoding</th><th width="20%">Unicode required</th></tr></thead>
|
|
<tbody><tr><td width="40%"><code class="code">:cr</code></td><td width="40%"><code class="code">#\Newline</code> is <code class="code">Carriage Return</code></td><td width="20%">No</td></tr>
|
|
<tr><td width="40%"><code class="code">:crlf</code></td><td width="40%"><code class="code">#\Newline</code> is <code class="code">Carriage Return</code> followed by <code class="code">Linefeed</code></td><td width="20%">No</td></tr>
|
|
<tr><td width="40%"><code class="code">:lf</code></td><td width="40%"><code class="code">#\Newline</code> is <code class="code">Linefeed</code></td><td width="20%">No</td></tr>
|
|
<tr><td width="40%"><code class="code">:little-endian</code></td><td width="40%">Modify UCS to use little-endian encoding.</td><td width="20%">No</td></tr>
|
|
<tr><td width="40%"><code class="code">:big-endian</code></td><td width="40%">Modify UCS to use big-endian encoding.</td><td width="20%">No</td></tr>
|
|
<tr><td width="40%"><code class="code">:utf-8 :utf8</code></td><td width="40%">Unicode UTF-8</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:ucs-2 :ucs2 :utf-16 :utf16 :unicode</code></td><td width="40%">UCS-2 encoding with BOM. Defaults to big-endian when writing or if no BOM is detected when reading.</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:ucs-2le :ucs2le :utf-16le</code></td><td width="40%">UCS-2 with little-endian encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:ucs-2be :ucs2be :utf-16be</code></td><td width="40%">UCS-2 with big-endian encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:ucs-4 :ucs4 :utf-32 :utf32</code></td><td width="40%">UCS-4 encoding with BOM. Defaults to big-endian when writing or if no BOM is detected when reading.</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:ucs-4le :ucs4le :utf-32le</code></td><td width="40%">UCS-4 with little-endian encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:ucs-4be :ucs4be :utf-32be</code></td><td width="40%">UCS-4 with big-endian encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-1 :iso8859-1 :latin-1 :cp819 :ibm819</code></td><td width="40%">Latin-1 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-2 :iso8859-2 :latin-2 :latin2</code></td><td width="40%">Latin-2 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-3 :iso8859-3 :latin-3 :latin3</code></td><td width="40%">Latin-3 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-4 :iso8859-4 :latin-4 :latin4</code></td><td width="40%">Latin-4 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-5 :cyrillic</code></td><td width="40%">Latin-5 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-6 :arabic :asmo-708 :ecma-114</code></td><td width="40%">Latin-6 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-7 :greek8 :greek :ecma-118</code></td><td width="40%">Greek encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-8 :hebrew</code></td><td width="40%">Hebrew encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-9 :latin-5 :latin5</code></td><td width="40%">Latin-5 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-10 :iso8859-10 :latin-6 :latin6</code></td><td width="40%">Latin-6 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-13 :iso8859-13 :latin-7 :latin7</code></td><td width="40%">Latin-7 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-14 :iso8859-14 :latin-8 :latin8</code></td><td width="40%">Latin-8 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:iso-8859-15 :iso8859-15 :latin-9 :latin9</code></td><td width="40%">Latin-7 encoding</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp437 :ibm-437</code></td><td width="40%">IBM CP 437</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp850 :ibm-850 :cp850</code></td><td width="40%">Windows CP 850</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp852 :ibm-852</code></td><td width="40%">IBM CP 852</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp855 :ibm-855</code></td><td width="40%">IBM CP 855</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp860 :ibm-860</code></td><td width="40%">IBM CP 860</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp861 :ibm-861</code></td><td width="40%">IBM CP 861</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp862 :ibm-862 :cp862</code></td><td width="40%">Windows CP 862</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp863 :ibm-863</code></td><td width="40%">IBM CP 863</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp864 :ibm-864</code></td><td width="40%">IBM CP 864</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp865 :ibm-865</code></td><td width="40%">IBM CP 865</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp866 :ibm-866 :cp866</code></td><td width="40%">Windows CP 866</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:dos-cp869 :ibm-869</code></td><td width="40%">IBM CP 869</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp932 :windows-932 :cp932</code></td><td width="40%">Windows CP 932</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp936 :windows-936 :cp936</code></td><td width="40%">Windows CP 936</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp949 :windows-949 :cp949</code></td><td width="40%">Windows CP 949</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp950 :windows-950 :cp950</code></td><td width="40%">Windows CP 950</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1250 :windows-1250 :ms-ee</code></td><td width="40%">Windows CP 1250</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1251 :windows-1251 :ms-cyrl</code></td><td width="40%">Windows CP 1251</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1252 :windows-1252 :ms-ansi</code></td><td width="40%">Windows CP 1252</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1253 :windows-1253 :ms-greek</code></td><td width="40%">Windows CP 1253</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1254 :windows-1254 :ms-turk</code></td><td width="40%">Windows CP 1254</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1255 :windows-1255 :ms-hebr</code></td><td width="40%">Windows CP 1255</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1256 :windows-1256 :ms-arab</code></td><td width="40%">Windows CP 1256</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1257 :windows-1257 :winbaltrim</code></td><td width="40%">Windows CP 1257</td><td width="20%">Yes</td></tr>
|
|
<tr><td width="40%"><code class="code">:windows-cp1258 :windows-1258</code></td><td width="40%">Windows CP 1258</td><td width="20%">Yes</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="caption"><p><strong class="strong">Table 2.10: </strong>Stream external formats</p></div></div>
|
|
<hr>
|
|
</div>
|
|
</div>
|
|
<div class="subsection-level-extent" id="Streams-_002d-Dictionary">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="Streams.html#Streams-_002d-C-Reference" accesskey="n" rel="next">C Reference</a>, Previous: <a href="Streams.html#Streams-_002d-ANSI-Streams" accesskey="p" rel="prev">ANSI Streams</a>, Up: <a href="Streams.html#Streams" accesskey="u" rel="up">Streams</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h4 class="subsection" id="Dictionary-2">2.19.2 Dictionary</h4>
|
|
|
|
<ul class="mini-toc">
|
|
<li><a href="Streams.html#File-Stream-Extensions" accesskey="1">File Stream Extensions</a></li>
|
|
<li><a href="Streams.html#External-Format-Extensions" accesskey="2">External Format Extensions</a></li>
|
|
<li><a href="Streams.html#Sequence-Streams" accesskey="3">Sequence Streams</a></li>
|
|
</ul>
|
|
<div class="subsubsection-level-extent" id="File-Stream-Extensions">
|
|
<h4 class="subsubsection">2.19.2.1 File Stream Extensions</h4>
|
|
|
|
<a class="anchor" id="open"></a><a class="index-entry-id" id="index-open-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-open"><span class="category-def">Function: </span><span><strong class="def-name">open</strong> <var class="def-var-arguments">filespec &key direction element-type if-exists if-does-not-exist external-format close-on-exec nonblock</var><a class="copiable-link" href='Streams.html#index-open'> ¶</a></span></dt>
|
|
<dd><p>Additional options for <a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_open.htm">open</a> include:
|
|
</p><dl class="table">
|
|
<dt><code class="code">:close-on-exec</code></dt>
|
|
<dd><p>Child processes don’t inherit a copy of this stream: new processes
|
|
created by <code class="code">fork</code> and <code class="code">exec</code> (for example by calling
|
|
<code class="code"><a class="ref" href="Operating-System-Interface.html#ext_003arun_002dprogram">ext:run-program</a></code>) close the stream after calling <code class="code">exec</code>.
|
|
Defaults to <code class="code">t</code>.
|
|
</p></dd>
|
|
<dt><code class="code">:nonblock</code></dt>
|
|
<dd><p>Open fifos or device files in nonblocking mode. Defaults to <code class="code">nil</code>.
|
|
</p></dd>
|
|
</dl>
|
|
<p>These options are ignored on operating systems which do not support them.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003aset_002dbuffering_002dmode"></a><a class="index-entry-id" id="index-ext_003aset_002dbuffering_002dmode-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003aset_002dbuffering_002dmode"><span class="category-def">Function: </span><span><strong class="def-name">ext:set-buffering-mode</strong> <var class="def-var-arguments">stream mode</var><a class="copiable-link" href='Streams.html#index-ext_003aset_002dbuffering_002dmode'> ¶</a></span></dt>
|
|
<dd><p>Control the buffering mode of a stream
|
|
</p>
|
|
<p><b class="b">Synopsis</b>
|
|
</p>
|
|
<dl class="table">
|
|
<dt><var class="var">stream</var></dt>
|
|
<dd><p>an ANSI stream
|
|
</p></dd>
|
|
<dt><var class="var">mode</var></dt>
|
|
<dd><p>one of <code class="code">nil</code>, <code class="code">:none</code>, <code class="code">:line</code>, <code class="code">:line-buffered</code>, <code class="code">:full</code> or <code class="code">:full-buffered</code>
|
|
</p></dd>
|
|
<dt><var class="var">returns</var></dt>
|
|
<dd><p>The supplied stream
|
|
</p></dd>
|
|
</dl>
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>If <var class="var">mode</var> is <code class="code">nil</code> or <code class="code">:none</code>, <var class="var">stream</var> will not be
|
|
buffered, if it is <code class="code">:line</code> or <code class="code">:line-buffered</code> resp.
|
|
<code class="code">:full</code> or <code class="code">:fully-buffered</code>, <var class="var">stream</var> will be line resp.
|
|
fully buffered. If the stream does not support buffering, nothing will
|
|
happen.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003afile_002dstream_002dfd"></a><a class="index-entry-id" id="index-ext_003afile_002dstream_002dfd-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003afile_002dstream_002dfd"><span class="category-def">Function: </span><span><strong class="def-name">ext:file-stream-fd</strong> <var class="def-var-arguments">file-stream</var><a class="copiable-link" href='Streams.html#index-ext_003afile_002dstream_002dfd'> ¶</a></span></dt>
|
|
<dd><p>Return the POSIX file descriptor of <var class="var">file-stream</var> as an integer
|
|
</p></dd></dl>
|
|
|
|
</div>
|
|
<div class="subsubsection-level-extent" id="External-Format-Extensions">
|
|
<h4 class="subsubsection">2.19.2.2 External Format Extensions</h4>
|
|
|
|
<a class="anchor" id="ext_003a_002adefault_002dexternal_002dformat_002a"></a><a class="index-entry-id" id="index-ext_003a_002adefault_002dexternal_002dformat_002a"></a>
|
|
<dl class="first-defvr first-defvar-alias-first-defvr">
|
|
<dt class="defvr defvar-alias-defvr" id="index-ext_003a_002adefault_002dexternal_002dformat_002a-1"><span class="category-def">Variable: </span><span><strong class="def-name">ext:*default-external-format*</strong><a class="copiable-link" href='Streams.html#index-ext_003a_002adefault_002dexternal_002dformat_002a-1'> ¶</a></span></dt>
|
|
<dd><p>Default external format to use for reading from streams, dealing with
|
|
filenames, etc. The default is to use utf-8 encoding if ECL is built
|
|
with Unicode support.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003aall_002dencodings"></a><a class="index-entry-id" id="index-ext_003aall_002dencodings-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003aall_002dencodings"><span class="category-def">Function: </span><span><strong class="def-name">ext:all-encodings</strong><a class="copiable-link" href='Streams.html#index-ext_003aall_002dencodings'> ¶</a></span></dt>
|
|
<dd><p>Return a list of all supported external formats
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003acharacter_002dcoding_002derror"></a><a class="index-entry-id" id="index-ext_003acharacter_002dcoding_002derror"></a>
|
|
<dl class="first-deftp">
|
|
<dt class="deftp" id="index-ext_003acharacter_002dcoding_002derror-1"><span class="category-def">Condition: </span><span><strong class="def-name">ext:character-coding-error</strong><a class="copiable-link" href='Streams.html#index-ext_003acharacter_002dcoding_002derror-1'> ¶</a></span></dt>
|
|
<dd>
|
|
<p>Character coding error
|
|
</p>
|
|
|
|
<p><b class="b">Class Precedence List</b>
|
|
</p>
|
|
<p><code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dcoding_002derror">ext:character-coding-error</a></code>, <code class="code">error</code>, <code class="code">serious-condition</code>, <code class="code">condition</code>, <code class="code">t</code>
|
|
</p>
|
|
|
|
<p><b class="b">Methods</b>
|
|
</p>
|
|
<a class="anchor" id="ext_003acharacter_002dcoding_002derror_002dexternal_002dformat"></a><a class="index-entry-id" id="index-ext_003acharacter_002dcoding_002derror_002dexternal_002dformat-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003acharacter_002dcoding_002derror_002dexternal_002dformat"><span class="category-def">Function: </span><span><strong class="def-name">ext:character-coding-error-external-format</strong> <var class="def-var-arguments">condition</var><a class="copiable-link" href='Streams.html#index-ext_003acharacter_002dcoding_002derror_002dexternal_002dformat'> ¶</a></span></dt>
|
|
<dd><dl class="table">
|
|
<dt><var class="var">returns</var></dt>
|
|
<dd><p>The external format of <var class="var">condition</var>
|
|
</p></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>Superclass of <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dencoding_002derror">ext:character-encoding-error</a></code> and <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002ddecoding_002derror">ext:character-decoding-error</a></code>.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003acharacter_002dencoding_002derror"></a><a class="index-entry-id" id="index-ext_003acharacter_002dencoding_002derror"></a>
|
|
<dl class="first-deftp">
|
|
<dt class="deftp" id="index-ext_003acharacter_002dencoding_002derror-1"><span class="category-def">Condition: </span><span><strong class="def-name">ext:character-encoding-error</strong><a class="copiable-link" href='Streams.html#index-ext_003acharacter_002dencoding_002derror-1'> ¶</a></span></dt>
|
|
<dd>
|
|
<p>Character encoding error
|
|
</p>
|
|
|
|
<p><b class="b">Class Precedence List</b>
|
|
</p>
|
|
<p><code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dencoding_002derror">ext:character-encoding-error</a></code>, <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dcoding_002derror">ext:character-coding-error</a></code>, <code class="code">error</code>, <code class="code">serious-condition</code>, <code class="code">condition</code>, <code class="code">t</code>
|
|
</p>
|
|
|
|
<p><b class="b">Methods</b>
|
|
</p>
|
|
<a class="anchor" id="ext_003acharacter_002dencoding_002derror_002dcode"></a><a class="index-entry-id" id="index-ext_003acharacter_002dencoding_002derror_002dcode-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003acharacter_002dencoding_002derror_002dcode"><span class="category-def">Function: </span><span><strong class="def-name">ext:character-encoding-error-code</strong> <var class="def-var-arguments">condition</var><a class="copiable-link" href='Streams.html#index-ext_003acharacter_002dencoding_002derror_002dcode'> ¶</a></span></dt>
|
|
<dd><dl class="table">
|
|
<dt><var class="var">returns</var></dt>
|
|
<dd><p>The character code of the character, which can’t be encoded
|
|
</p></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>Condition for characters, which can’t be encoded with some external
|
|
format.
|
|
</p></dd></dl>
|
|
|
|
|
|
<a class="anchor" id="ext_003acharacter_002ddecoding_002derror"></a><a class="index-entry-id" id="index-ext_003acharacter_002ddecoding_002derror"></a>
|
|
<dl class="first-deftp">
|
|
<dt class="deftp" id="index-ext_003acharacter_002ddecoding_002derror-1"><span class="category-def">Condition: </span><span><strong class="def-name">ext:character-decoding-error</strong><a class="copiable-link" href='Streams.html#index-ext_003acharacter_002ddecoding_002derror-1'> ¶</a></span></dt>
|
|
<dd>
|
|
<p>Character decoding error
|
|
</p>
|
|
|
|
<p><b class="b">Class Precedence List</b>
|
|
</p>
|
|
<p><code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002ddecoding_002derror">ext:character-decoding-error</a></code>, <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dcoding_002derror">ext:character-coding-error</a></code>, <code class="code">error</code>, <code class="code">serious-condition</code>, <code class="code">condition</code>, <code class="code">t</code>
|
|
</p>
|
|
|
|
<p><b class="b">Methods</b>
|
|
</p>
|
|
<a class="anchor" id="ext_003acharacter_002ddecoding_002derror_002doctects"></a><a class="index-entry-id" id="index-ext_003acharacter_002ddecoding_002derror_002doctects-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003acharacter_002ddecoding_002derror_002doctects"><span class="category-def">Function: </span><span><strong class="def-name">ext:character-decoding-error-octects</strong> <var class="def-var-arguments">condition</var><a class="copiable-link" href='Streams.html#index-ext_003acharacter_002ddecoding_002derror_002doctects'> ¶</a></span></dt>
|
|
<dd><dl class="table">
|
|
<dt><var class="var">returns</var></dt>
|
|
<dd><p>A list of integers with the values of the <code class="code">unsigned char</code>’s which
|
|
can’t be decoded.
|
|
</p></dd>
|
|
</dl>
|
|
</dd></dl>
|
|
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>Condition for characters, which can’t be decoded with some external
|
|
format.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003astream_002dencoding_002derror"></a><a class="index-entry-id" id="index-ext_003astream_002dencoding_002derror"></a>
|
|
<dl class="first-deftp">
|
|
<dt class="deftp" id="index-ext_003astream_002dencoding_002derror-1"><span class="category-def">Condition: </span><span><strong class="def-name">ext:stream-encoding-error</strong><a class="copiable-link" href='Streams.html#index-ext_003astream_002dencoding_002derror-1'> ¶</a></span></dt>
|
|
<dd>
|
|
<p>Stream encoding error
|
|
</p>
|
|
|
|
<p><b class="b">Class Precedence List</b>
|
|
</p>
|
|
<p><code class="code"><a class="ref" href="Streams.html#ext_003astream_002dencoding_002derror">ext:stream-encoding-error</a></code>, <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dencoding_002derror">ext:character-encoding-error</a></code>, <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dcoding_002derror">ext:character-coding-error</a></code>, <code class="code">stream-error</code>, <code class="code">error</code>, <code class="code">serious-condition</code>, <code class="code">condition</code>, <code class="code">t</code>
|
|
</p>
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>This condition is signaled when trying to write a character to a
|
|
stream, which can’t be encoded with the streams external format.
|
|
</p></dd></dl>
|
|
|
|
|
|
<a class="anchor" id="ext_003astream_002ddecoding_002derror"></a><a class="index-entry-id" id="index-ext_003astream_002ddecoding_002derror"></a>
|
|
<dl class="first-deftp">
|
|
<dt class="deftp" id="index-ext_003astream_002ddecoding_002derror-1"><span class="category-def">Condition: </span><span><strong class="def-name">ext:stream-decoding-error</strong><a class="copiable-link" href='Streams.html#index-ext_003astream_002ddecoding_002derror-1'> ¶</a></span></dt>
|
|
<dd>
|
|
<p>Stream decoding error
|
|
</p>
|
|
|
|
<p><b class="b">Class Precedence List</b>
|
|
</p>
|
|
<p><code class="code"><a class="ref" href="Streams.html#ext_003astream_002ddecoding_002derror">ext:stream-decoding-error</a></code>, <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002ddecoding_002derror">ext:character-decoding-error</a></code>, <code class="code"><a class="ref" href="Streams.html#ext_003acharacter_002dcoding_002derror">ext:character-coding-error</a></code>, <code class="code">stream-error</code>, <code class="code">error</code>, <code class="code">serious-condition</code>, <code class="code">condition</code>, <code class="code">t</code>
|
|
</p>
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>This condition is signaled when trying to read a character from a
|
|
stream, which can’t be decoded with the streams external format.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003aencoding_002derror"></a><a class="index-entry-id" id="index-ext_003aencoding_002derror-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003aencoding_002derror"><span class="category-def">Function: </span><span><strong class="def-name">ext:encoding-error</strong> <var class="def-var-arguments">stream external-format code</var><a class="copiable-link" href='Streams.html#index-ext_003aencoding_002derror'> ¶</a></span></dt>
|
|
<dd><p>Signal a <code class="code"><a class="ref" href="Streams.html#ext_003astream_002dencoding_002derror">ext:stream-encoding-error</a></code> with the given
|
|
<var class="var">external-format</var> and <var class="var">code</var>. Make a restart available so
|
|
that the error can be ignored or the character can be replaced with a
|
|
different one.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003adecoding_002derror"></a><a class="index-entry-id" id="index-ext_003adecoding_002derror-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003adecoding_002derror"><span class="category-def">Function: </span><span><strong class="def-name">ext:decoding-error</strong> <var class="def-var-arguments">stream external-format octects</var><a class="copiable-link" href='Streams.html#index-ext_003adecoding_002derror'> ¶</a></span></dt>
|
|
<dd><p>Signal a <code class="code"><a class="ref" href="Streams.html#ext_003astream_002ddecoding_002derror">ext:stream-decoding-error</a></code> with the given
|
|
<var class="var">external-format</var> and <var class="var">octets</var>. Make a restart available so
|
|
that the error can be ignored or the octets can be replaced with a
|
|
character.
|
|
</p></dd></dl>
|
|
|
|
</div>
|
|
<div class="subsubsection-level-extent" id="Sequence-Streams">
|
|
<h4 class="subsubsection">2.19.2.3 Sequence Streams</h4>
|
|
|
|
<a class="anchor" id="ext_003asequence_002dstream"></a><a class="index-entry-id" id="index-ext_003asequence_002dstream"></a>
|
|
<dl class="first-deftp">
|
|
<dt class="deftp" id="index-ext_003asequence_002dstream-1"><span class="category-def">System Class: </span><span><strong class="def-name">ext:sequence-stream</strong><a class="copiable-link" href='Streams.html#index-ext_003asequence_002dstream-1'> ¶</a></span></dt>
|
|
<dd>
|
|
|
|
<p><b class="b">Class Precedence List</b>
|
|
</p>
|
|
<p><code class="code"><a class="ref" href="Streams.html#ext_003asequence_002dstream">ext:sequence-stream</a></code>, <code class="code">stream</code>, <code class="code">t</code>
|
|
</p>
|
|
|
|
<p><b class="b">Description</b>
|
|
</p>
|
|
<p>Sequence streams work similar to string streams for vectors. The
|
|
supplied vectors that the streams read from or write to must have a
|
|
byte sized element type, i.e. <code class="code">(signed-byte 8)</code>,
|
|
<code class="code">(unsigned-byte 8)</code> or <code class="code">base-char</code>.
|
|
</p>
|
|
<p>The semantics depend on the vector element type and the external
|
|
format of the stream. If no external format is supplied and the
|
|
element type is an integer type, the stream is a binary stream and
|
|
accepts only integers of the same type as the element type of the
|
|
vector. Otherwise, the stream accepts both characters and integers and
|
|
converts them using the given external format. If the element type is
|
|
<code class="code">base-char</code>, the elements of the vectors are treated as bytes.
|
|
This means that writing a character may use multiple elements of the
|
|
vector, whose <code class="code">char-code</code>s will be equal to the values of the
|
|
bytes comprising the character in the given external format.
|
|
</p></dd></dl>
|
|
|
|
<a class="anchor" id="ext_003amake_002dsequence_002dinput_002dstream"></a><a class="index-entry-id" id="index-ext_003amake_002dsequence_002dinput_002dstream-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003amake_002dsequence_002dinput_002dstream"><span class="category-def">Function: </span><span><strong class="def-name">ext:make-sequence-input-stream</strong> <var class="def-var-arguments">vector &key (start 0) (end nil) (external-format nil)</var><a class="copiable-link" href='Streams.html#index-ext_003amake_002dsequence_002dinput_002dstream'> ¶</a></span></dt>
|
|
<dd><p>Create a sequence input stream with the subsequence bounded by
|
|
<var class="var">start</var> and <var class="var">end</var> of the given vector.
|
|
</p></dd></dl>
|
|
<a class="anchor" id="ext_003amake_002dsequence_002doutput_002dstream"></a><a class="index-entry-id" id="index-ext_003amake_002dsequence_002doutput_002dstream-1"></a>
|
|
<dl class="first-deffn first-defun-alias-first-deffn">
|
|
<dt class="deffn defun-alias-deffn" id="index-ext_003amake_002dsequence_002doutput_002dstream"><span class="category-def">Function: </span><span><strong class="def-name">ext:make-sequence-output-stream</strong> <var class="def-var-arguments">vector &key (external-format nil)</var><a class="copiable-link" href='Streams.html#index-ext_003amake_002dsequence_002doutput_002dstream'> ¶</a></span></dt>
|
|
<dd><p>Create a sequence output stream.
|
|
</p></dd></dl>
|
|
|
|
<a class="index-entry-id" id="index-Using-sequence-streams"></a>
|
|
<p>Example:
|
|
</p>
|
|
<p>Using sequence streams to convert to a UTF8 encoded base string
|
|
</p><div class="example lisp">
|
|
<pre class="lisp-preformatted">CL-USER> (defvar *output* (make-array 20 :element-type 'base-char :adjustable t :fill-pointer 0))
|
|
*OUTPUT*
|
|
CL-USER> (defvar *stream* (ext:make-sequence-output-stream *output* :external-format :utf-8))
|
|
*STREAM*
|
|
CL-USER> (write-string "Spätzle mit Soß'" *stream*)
|
|
"Spätzle mit Soß'"
|
|
CL-USER> *output*
|
|
"Spätzle mit SoÃ\237'"
|
|
</pre></div>
|
|
|
|
<hr>
|
|
</div>
|
|
</div>
|
|
<div class="subsection-level-extent" id="Streams-_002d-C-Reference">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Previous: <a href="Streams.html#Streams-_002d-Dictionary" accesskey="p" rel="prev">Dictionary</a>, Up: <a href="Streams.html#Streams" accesskey="u" rel="up">Streams</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<h4 class="subsection" id="C-Reference-18">2.19.3 C Reference</h4>
|
|
|
|
<ul class="mini-toc">
|
|
<li><a href="Streams.html#ANSI-dictionary-6" accesskey="1">ANSI dictionary</a></li>
|
|
</ul>
|
|
<div class="subsubsection-level-extent" id="ANSI-dictionary-6">
|
|
<h4 class="subsubsection">2.19.3.1 ANSI dictionary</h4>
|
|
<p>Common Lisp and C equivalence
|
|
</p>
|
|
<table class="multitable">
|
|
<thead><tr><th width="30%">Lisp symbol</th><th width="70%">C function</th></tr></thead>
|
|
<tbody><tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_broadc.htm">broadcast-stream-streams</a></td><td width="70%">cl_object cl_broadcast_stream_streams(cl_object broadcast_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_clear_.htm">clear-input</a></td><td width="70%">cl_object cl_clear_input(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_finish.htm">clear-output</a></td><td width="70%">cl_object cl_clear_output(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_close.htm">close</a></td><td width="70%">cl_object cl_close(cl_narg narg, cl_object stream, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_conc_1.htm">concatenated-stream-streams</a></td><td width="70%">cl_object cl_concatenated_stream_streams(cl_object concatenated_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_echo_s.htm">echo-stream-input-stream</a></td><td width="70%">cl_object cl_echo_stream_input_stream(cl_object echo_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_echo_s.htm">echo-stream-output-stream</a></td><td width="70%">cl_object cl_echo_stream_output_stream(cl_object echo_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_file_p.htm">file-length</a></td><td width="70%">cl_object cl_file_position(cl_narg narg, cl_object file_stream, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_file_s.htm">file-position</a></td><td width="70%">cl_object cl_file_position(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_finish.htm">file-string-length</a></td><td width="70%">cl_object cl_file_string_length(cl_object stream, cl_object object)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_finish.htm">finish-output</a></td><td width="70%">cl_object cl_finish_output(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_finish.htm">force-output</a></td><td width="70%">cl_object cl_force_output(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_terpri.htm">fresh-line</a></td><td width="70%">cl_object cl_fresh_line(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_get_out.htm">get-output-stream-string</a></td><td width="70%">cl_object cl_get_output_stream_string(cl_object string_output_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_in_stm.htm">input-stream-p</a></td><td width="70%">cl_object cl_input_stream_p(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_intera.htm">interactive-stream-p</a></td><td width="70%">cl_object cl_interactive_stream_p(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_listen.htm">listen</a></td><td width="70%">cl_object cl_listen(cl_narg narg, cl_object stream, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_bro.htm">make-broadcast-stream</a></td><td width="70%">cl_object cl_make_broadcast_stream(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_con.htm">make-concatenated-stream</a></td><td width="70%">cl_object cl_make_concatenated_stream(cl_narg narg, ....)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_ech.htm">make-echo-stream</a></td><td width="70%">cl_object cl_make_echo_stream(cl_object input, cl_object output)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_s_1.htm">make-string-input-stream</a></td><td width="70%">cl_object cl_make_string_input_stream(cl_narg narg, cl_object string, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_s_2.htm">make-string-output-stream</a></td><td width="70%">cl_object cl_make_string_output_stream(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_two.htm">make-two-way-stream</a></td><td width="70%">cl_object cl_make_two_way_stream(cl_object input, cl_object output)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_mk_syn.htm">make-synonym-stream</a></td><td width="70%">cl_object cl_make_synonym_stream(cl_object symbol)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_open.htm">open</a></td><td width="70%">cl_object cl_open(cl_narg narg, cl_object filespec, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_open_s.htm">open-stream-p</a></td><td width="70%">cl_object cl_open_stream_p(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_in_stm.htm">output-stream-p</a></td><td width="70%">cl_object cl_output_stream_p(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_peek_c.htm">peek-char</a></td><td width="70%">cl_object cl_peek_char(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_by.htm">read-byte</a></td><td width="70%">cl_object cl_read_byte(cl_narg narg, cl_object stream, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_cha.htm">read-char</a></td><td width="70%">cl_object cl_read_char(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_c_1.htm">read-char-no-hang</a></td><td width="70%">cl_object cl_read_char_no_hang(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_lin.htm">read-line</a></td><td width="70%">cl_object cl_read_line(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_rd_seq.htm">read-sequence</a></td><td width="70%">cl_object cl_read_sequence(cl_narg narg, cl_object sequence, cl_object stream, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_stm_el.htm">stream-element-type</a></td><td width="70%">cl_object cl_stream_element_type(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_stm_er.htm">stream-error-stream</a></td><td width="70%">[Only in Common Lisp]</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_stm_ex.htm">stream-external-format</a></td><td width="70%">cl_object cl_stream_external_format(cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_stm_ex.htm">(setf stream-external-format)</a></td><td width="70%">cl_object si_stream_external_format_set(cl_object stream, cl_object format)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_stmp.htm">streamp</a></td><td width="70%">cl_object cl_streamp(cl_object object)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_syn_st.htm">synonym-stream-symbol</a></td><td width="70%">cl_object cl_synonym_stream_symbol(cl_object synonym_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_terpri.htm">terpri</a></td><td width="70%">cl_object cl_terpri(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_two_wa.htm">two-way-stream-input-stream</a></td><td width="70%">cl_object cl_two_way_stream_input_stream(cl_object two_way_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_two_wa.htm">two-way-stream-output-stream</a></td><td width="70%">cl_object cl_two_way_stream_output_stream(cl_object two_way_stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_unrd_c.htm">unread-char</a></td><td width="70%">cl_object cl_unread_char(cl_narg narg, cl_object character, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_by.htm">write-byte</a></td><td width="70%">cl_object cl_write_byte(cl_object byte, cl_object stream)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_cha.htm">write-char</a></td><td width="70%">cl_object cl_write_char(cl_narg narg, cl_object character, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_stg.htm">write-line</a></td><td width="70%">cl_object cl_write_line(cl_narg narg, cl_object string, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_stg.htm">write-string</a></td><td width="70%">cl_object cl_write_string(cl_narg narg, cl_object string, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_wr_seq.htm">write-sequence</a></td><td width="70%">cl_object cl_write_sequence(cl_narg narg, cl_object sequence, cl_object stream, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_y_or_n.htm">y-or-n-p</a></td><td width="70%">cl_object cl_y_or_n_p(cl_narg narg, ...)</td></tr>
|
|
<tr><td width="30%"><a class="url" href="http://www.lispworks.com/documentation/HyperSpec/Body/f_y_or_n.htm">yes-or-no-p</a></td><td width="70%">cl_object cl_yes_or_no_p(cl_narg narg, ...)</td></tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr>
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="Printer.html" accesskey="n" rel="next">Printer</a>, Previous: <a href="Files.html#Files" accesskey="p" rel="prev">Files</a>, Up: <a href="Standards.html" accesskey="u" rel="up">Standards</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Indexes.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|