1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1.1, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>EOF and Errors (GNU Octave (version 10.3.0))</title>
<meta name="description" content="EOF and Errors (GNU Octave (version 10.3.0))">
<meta name="keywords" content="EOF and Errors (GNU Octave (version 10.3.0))">
<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="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="C_002dStyle-I_002fO-Functions.html" rel="up" title="C-Style I/O Functions">
<link href="File-Positioning.html" rel="next" title="File Positioning">
<link href="Temporary-Files.html" rel="prev" title="Temporary Files">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
div.example {margin-left: 3.2em}
span:hover a.copiable-link {visibility: visible}
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<div class="subsection-level-extent" id="EOF-and-Errors">
<div class="nav-panel">
<p>
Next: <a href="File-Positioning.html" accesskey="n" rel="next">File Positioning</a>, Previous: <a href="Temporary-Files.html" accesskey="p" rel="prev">Temporary Files</a>, Up: <a href="C_002dStyle-I_002fO-Functions.html" accesskey="u" rel="up">C-Style I/O Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h4 class="subsection" id="End-of-File-and-Errors"><span>14.2.18 End of File and Errors<a class="copiable-link" href="#End-of-File-and-Errors"> ¶</a></span></h4>
<p>Once a file has been opened its status can be acquired. As an example
the <code class="code">feof</code> functions determines if the end of the file has been
reached. This can be very useful when reading small parts of a file
at a time. The following example shows how to read one line at a time
from a file until the end has been reached.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">filename = "myfile.txt";
fid = fopen (filename, "r");
while (! feof (fid) )
text_line = fgetl (fid);
endwhile
fclose (fid);
</pre></div></div>
<p>Note that in some situations it is more efficient to read the entire
contents of a file and then process it, than it is to read it line by
line. This has the potential advantage of removing the loop in the
above code.
</p>
<a class="anchor" id="XREFfeof"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-feof"><span><code class="def-type"><var class="var">status</var> =</code> <strong class="def-name">feof</strong> <code class="def-code-arguments">(<var class="var">fid</var>)</code><a class="copiable-link" href="#index-feof"> ¶</a></span></dt>
<dd><p>Return 1 if an end-of-file condition has been encountered for the file
specified by file descriptor <var class="var">fid</var> and 0 otherwise.
</p>
<p>Note that <code class="code">feof</code> will only return 1 if the end of the file has already
been encountered, not if the next read operation will result in an
end-of-file condition.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Binary-I_002fO.html#XREFfread">fread</a>, <a class="ref" href="File-Positioning.html#XREFfrewind">frewind</a>, <a class="ref" href="File-Positioning.html#XREFfseek">fseek</a>, <a class="ref" href="#XREFfclear">fclear</a>, <a class="ref" href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<a class="anchor" id="XREFferror"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-ferror"><span><code class="def-type"><var class="var">msg</var> =</code> <strong class="def-name">ferror</strong> <code class="def-code-arguments">(<var class="var">fid</var>)</code><a class="copiable-link" href="#index-ferror"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ferror-1"><span><code class="def-type">[<var class="var">msg</var>, <var class="var">err</var>] =</code> <strong class="def-name">ferror</strong> <code class="def-code-arguments">(<var class="var">fid</var>)</code><a class="copiable-link" href="#index-ferror-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ferror-2"><span><code class="def-type">[…] =</code> <strong class="def-name">ferror</strong> <code class="def-code-arguments">(<var class="var">fid</var>, "clear")</code><a class="copiable-link" href="#index-ferror-2"> ¶</a></span></dt>
<dd><p>Query the error status of the stream specified by file descriptor <var class="var">fid</var>.
</p>
<p>If an error condition exists then return a string <var class="var">msg</var> describing the
error. Otherwise, return an empty string <code class="code">""</code>.
</p>
<p>The second input <code class="code">"clear"</code> is optional. If supplied, the error
state on the stream will be cleared.
</p>
<p>The optional second output is a numeric indication of the error status.
<var class="var">err</var> is 1 if an error condition has been encountered and 0 otherwise.
</p>
<p>Note that <code class="code">ferror</code> indicates if an error has already occurred, not
whether the next operation will result in an error condition.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="#XREFfclear">fclear</a>, <a class="ref" href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<a class="anchor" id="XREFfclear"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-fclear"><span><strong class="def-name">fclear</strong> <code class="def-code-arguments">(<var class="var">fid</var>)</code><a class="copiable-link" href="#index-fclear"> ¶</a></span></dt>
<dd><p>Clear the stream state for the file specified by the file descriptor
<var class="var">fid</var>.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="#XREFferror">ferror</a>, <a class="ref" href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>.
</p></dd></dl>
<a class="anchor" id="XREFfreport"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-freport"><span><strong class="def-name">freport</strong> <code class="def-code-arguments">()</code><a class="copiable-link" href="#index-freport"> ¶</a></span></dt>
<dd><p>Print a list of which files have been opened, and whether they are open
for reading, writing, or both.
</p>
<p>For example:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">freport ()
-| number mode arch name
-| ------ ---- ---- ----
-| 0 r ieee-le stdin
-| 1 w ieee-le stdout
-| 2 w ieee-le stderr
-| 3 r ieee-le myfile
</pre></div></div>
<p><strong class="strong">See also:</strong> <a class="ref" href="Opening-and-Closing-Files.html#XREFfopen">fopen</a>, <a class="ref" href="Opening-and-Closing-Files.html#XREFfclose">fclose</a>, <a class="ref" href="Opening-and-Closing-Files.html#XREFis_005fvalid_005ffile_005fid">is_valid_file_id</a>.
</p></dd></dl>
</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="File-Positioning.html">File Positioning</a>, Previous: <a href="Temporary-Files.html">Temporary Files</a>, Up: <a href="C_002dStyle-I_002fO-Functions.html">C-Style I/O Functions</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|